0

我正在尝试创建一个应用程序,其中有一个 JSplitPane,其中包含左侧的文档树和右侧的当前编辑器窗格。编辑器窗格有一个工具栏作为编辑窗格的一部分。我的问题是,当拆分窗格的右组件达到工具栏的大小时,当包含 JSplitPane 的 JFrame 调整大小时,右窗格开始“挤压”左窗格。

我想知道是否有人知道一种方法可以使拆分窗格的两个组件保持相同的比例,并让工具栏停止显示其中的项目或有一个“更多”按钮。我在框架工具栏中为“更多”功能提供了 tigris 工具栏,它似乎不会在 JScrollpane 中调整大小。

谢谢您的帮助。

4

1 回答 1

3

如果我理解正确,您希望在调整父框架大小时让拆分窗格以相同的优先级对待双方。如果是这种情况,您可能需要查看方法JSplitPane.setResizeWeight(double)

指定当拆分窗格的大小发生变化时如何分配额外空间。默认值 0 表示右/下组件获得所有额外空间(左/上组件行为固定),其中值 1 指定左/上组件获得所有额外空间(右/底部组件作用固定)。具体来说,左侧/顶部组件获得 (weight * diff) 额外空间,右侧/底部组件获得 (1 - weight) * diff 额外空间。

考虑到这一点,我会尝试 0.5。

编辑

查看 BasicSplitPaneUI 的代码,它会在调整大小时考虑左右组件的最小大小,而不管权重如何。请注意,重量仍然很重要。它只是被最小的组件所击败。考虑到这一点,请尝试在工具栏或包含它的滚动窗格上设置最小尺寸。

于 2009-07-08T00:56:07.287 回答