JToolbar在JSplitPane中调整大小

时间:2009-07-08 00:43:37

标签: java resize toolbar jscrollpane

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

我想知道是否有人知道如何将分割窗格的两个组件保持在相同的比例,并且让工具栏停止显示其中的项目或者使用“更多”按钮。我已经在框架工具栏中使用了“更多”功能的底层工具栏,它似乎不会在JScrollpane中调整大小。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

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

  

指定在拆分窗格的大小更改时如何分配额外空间。值0(默认值)表示右/底组件获取所有额外空间(左/顶组件固定),其中值为1指定左/顶组件获取所有额外空间(右/底部组件行为固定)。具体来说,左/顶部分获得(weight * diff)额外空间,右/底部分获得(1 - 重量)* diff额外空间。

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

修改

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