Jak*_*old 19 java user-interface swing
是否可以告诉JPanel将其大小设置为适合它包含的所有组件?类似于pack()JFrame的东西.
编辑:使用preferredSize的技巧没有帮助.我有JSplitPane,其中一部分是GridBagLayout,有许多标签(见截图),标签相互重叠.
Mic*_*ers 19
看完源代码之后pack(),我想出了:
panel.setPreferredSize(panel.getPreferredSize());
Run Code Online (Sandbox Code Playgroud)
这迫使面板根据其子组件的优选尺寸重新计算其优选尺寸.
您可能会或可能不会在validate()之后打电话; 在我的小例子中,似乎没有任何区别,但Javadoc说:
该
validate方法用于使容器再次布置其子组件.在显示容器后修改此容器的子组件(添加到容器中或从容器中删除,或更改布局相关信息)时,应调用它.
所以我想这取决于你为什么要重新包装你的JPanel.