让Swing JSplitPane支持一次触摸调整大小,但不支持拖动



我在我的应用程序中使用了一个水平方向的JSplitPane

左边是控制面板,右边是编辑器。调整控制面板的大小没有意义;它的布局太敏感了。所以,我想要么显示它,要么不显示。

JSplitPane组件几乎满足了我的需求(特别是下面显示的一次触摸调整大小的行为)。但是我不希望允许用户拖动大小调整条:我只想要一键式的行为。

splitPane.setOneTouchExpandable(true);

有任何指示如何做到这一点吗?

对于JSplitPane来说,要做到这一点并不容易。

使用Jide Common Layer (GPL类路径例外)中的JideSplitSpane代替。然后:

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

JideSplitSpaneJSplitPane相比还有其他优点,如允许多次拆分

splitPane.setEnabled( false );