在我的 Java Swing 应用程序中有一个垂直拆分的 JSplitPane,顶部是一个 JLabel,当我单击按钮更新一些信息时它可能会改变大小,底部是一个显示一些结果的 JPanel。
我的代码是这样的:
JLabel Top_Label=new JLabel();
Top_Label.setPreferredSize(new Dimension(1420,355));
JPanel Bottom_Panel=new JPanel();
Bottom_Panel.setPreferredSize(new Dimension(1420,445));
JSplitPane Results_Split_Pane=new JSplitPane(JSplitPane.VERTICAL_SPLIT,Top_Label,Bottom_Panel);
Top_Label 包含一个 html 表格。当我点击按钮更新数据时,Top_Label 有时会在 html 表格中包含较少的数据行并显示大量空白。
现在,当Top_Label显示一个小的html表格时,它会保持原来的大小,并留下很多空白,但是当我将它调整到更小的空间并点击按钮更新数据时,它就会有一个大的html表格,它不会扩大区域以适应更大的 html 表格,但是当我手动移动拆分栏时,它足够智能,不会小于 html 表格的高度,但如果有空白空间,它会让我缩小面积。
如何让Results_Split_Pane根据Top_Label的高度自动调整自己,这样当内容少的时候,split bar会升高到Top_Label中html表格的高度,当Top_Label的数据多的时候,Results_Split_Pane的split酒吧会走低吗?
最佳答案
JSplitPane
没有自动调整功能。
我建议你可以:
- 将
PropertyChangeListener
添加到您的JLabel
- 并监听
text
事件 - 获取标签的首选尺寸
- 使用
JSplitPane
的setDividerLocation(...)
方法作为标签的首选高度。
关于java - 如何自动调整JSplitPane?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31973244/