2

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

有没有一种简单的方法可以实现这一目标?欢迎任何帮助或代码片段!

4

1 回答 1

1

最简洁的答案是不”。

长答案是“是”,有很多工作最终可能无法满足您的长期需求。

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

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

所以,这让你有两个选择。

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