如何设置SplitPane setOneTouchExpandable只在一个方向扩展

时间:2012-07-22 20:31:02

标签: java

我在JSplitPane中设置了setOneTouchExpandable(true)和setEnabled(false),允许用户只向左或向右展开。但我真正想要的是让左侧面板向左折叠或保持默认位置。 (这就是我设置setEnabled(false))的原因。

有一种简单的方法来实现这一目标吗?欢迎提供任何帮助或代码片段!

1 个答案:

答案 0 :(得分:1)

简短的回答是“不”。

长期回答是“是”,大量工作可能无法满足您的长期需求。

我对代码进行了挖掘,发现“单触”箭头是由BasicSplitPaneDividerUI构建的(在大多数情况下)。作为其职责的一部分,它会创建两个调整大小按钮。

您提供的属性不允许您告知此UI委托仅呈现单个箭头或任何方式来捕获发生的操作事件。

所以,这给你留下了两个选择。

  1. 您可以创建自己的UI委托并实现所需的功能。这当然会产生不再与剩余UI相匹配的UI的风险,您还必须考虑如何影响应用程序中的任何其他拆分窗格。
  2. 使用一点蛮力。基本上,您希望遍历JSplitPanes容器的层次结构并找到任何JButton。然后,您要么将自己的动作侦听器附加到它们,要么完全替换它们。