2

JSplitPane で setOneTouchExpandable(true) と setEnabled(false) を設定して、ユーザーが left または right のみを展開できるようにします。しかし、私が実際に望んでいるのは、左側のパネルを左側に折りたたむか、デフォルトの位置にとどめることです。(そのため、setEnabled(false) を設定します)。

これを達成する簡単な方法はありますか?コードのヘルプやスニペットは大歓迎です!

4

1 に答える 1

1

短い答えは「いいえ」です。

長い答えは「はい」です。長期的なニーズを最終的に満たさない可能性のある多くの作業があります。

私はコードを掘り下げて、「ワンタッチ」矢印がBasicSplitPaneDividerUI(ほとんどの場合)によって構築されていることを発見しました。その責任の一部として、2 つのサイズ変更ボタンを作成します。

この UI デリゲートに 1 つの矢印のみをレンダリングするように指示したり、発生したアクション イベントをトラップする方法を指定したりするためのプロパティを提供することはできません。

したがって、2 つの選択肢が残ります。

  1. 独自の UI デリゲートを作成し、必要な機能を実装できます。これはもちろん、残りの UI と一致しない UI を生成するリスクを伴います。また、それがアプリケーション内の他の分割ペインにどのように影響するかを考慮する必要もあります。
  2. 少し強引な力を使ってください。基本的に、JSplitPanesコンテナの階層をたどって JButton を見つけます。次に、独自のアクションリスナーをそれらにアタッチするか、それらを完全に置き換えます。
于 2012-07-22T21:00:57.670 に答える