2011-11-11 7 views
2

私のアプリケーションでは水平方向のJSplitPaneを使用しています。Swing JSplitPaneでワンタッチリサイズがサポートされますが、ドラッグはサポートされません

私は、左側にコントロールパネル、右側にエディタを持っています。コントロールパネルのサイズを変更することは意味がありません。そのレイアウトはあまりにも敏感です。だから、私はそれを表示するかしないかのどちらかをしたいと思います。

JSplitPaneコンポーネントは、私の要件(特に以下に示すワンタッチリサイズの動作)をほぼ満たしています。しかし、私はユーザーがリサイズバーをドラッグすることを許可したくありません:私はちょうどワンタッチの動作が欲しいです。

splitPane.setOneTouchExpandable(true); 

どのようにこれを行うための指針ですか?

+2

'私はちょうどワンタッチbehaviour.'をしたい - 、なぜ、タッチスクリーンからマウスクリック、どのようには、...早いほど良いのヘルプは、http://sscce.org/ – mKorbel

+0

を投稿してくださいこんにちは@ mKorbel私はsscceの役割を理解していますが、この質問は私のインスタンスに固有のものではありません。私はコードが壊れていないので、私はSwing JSplitPaneコンポーネントの使用方法について知りたいです。私はこのJava Swingの質問にTouchScreenのコンテキストがあるとは思わない。 – ianmayo

+0

ianmayo Java6の画面上でマウスと指の差分を見たことがなく、質問がJComponentsを逃してLayoutManagerを使用しました – mKorbel

答えて

2

JSplitPaneでこれを行う簡単な方法はありません。

JideSplitSpaneJide Common Layer(クラスパス例外のあるGPL)を代わりに使用してください。次に行う:

JideSplitPane splitPane = ...; 
splitPane.setDragResizable(false); 
splitPane.setOneTouchExpandable(true); 

JideSplitSpaneは、複数の分割を可能にするようJSplitPaneに比べていくつかの他の利点を有します。

0
splitPane.setEnabled(false); 
+0

無効なので、ワンタッチリサイズの動作も無効になります。 – ianmayo

+0

@ianmayo、あなたは実際にこれをテストしたのか、それともうまく動作しないと仮定しましたか?それは私がそれをテストした方法である金属LAFを使用するとき正常に動作します。 LAF問題があるかもしれませんが、私の答えは間違っていません。あなたが使用したテストコードを投稿してください。 – camickr

+0

はい、私は投稿する前にそれをテストしました。それを超えると、setEnabled(false)がコンポーネントの一部を有効にしておくことは非論理的です。参照してください:http://download.oracle.com/javase/1,5.0/docs/api/javax/swing/JComponent.html#setEnabled(boolean) – ianmayo

関連する問題