我已经像这样配置了布局:
panel.add(addButtons(), "wrap");
panel.add(showTable(), "growx, wrap");
因此,首先我要添加一个按钮组,然后我希望将表扩大到最大,然后在下一个“行”中包装下一个组件。
但是,我的GUI看起来像这样:
在这里,您显然看不到表格中的任何值。因此,如何扩展表以便可以看到每个值?
感谢您的回答!
最佳答案
在这里,您显然看不到表格中的任何值。因此,如何扩展表以便可以看到每个值?
正如我在评论中所说,我不认为您的问题与列(首选|最小|最大)大小有关,而是布局管理器的默认行为:MigLayout。如this answer中所述,默认情况下MigLayout
中的行不会填充所有可用宽度,而仅是显示最长行(基于组件宽度)所必需的。如果在实例化布局时启用“调试”功能,则可以看到此事实:
MigLayout layout = new MigLayout("debug");
据我了解您的问题,您需要同时使用
growx
和fillx
约束。第一个是组件约束,另一个是布局约束。话虽如此,请考虑以下发展。
1.添加没有“ growx”约束的滚动窗格
片段
MigLayout layout = new MigLayout("debug");
JPanel panel = new JPanel(layout);
panel.add(buttonsPanel, "wrap");
panel.add(scrollPane);
屏幕截图
2.添加具有“ growx”约束的滚动窗格
片段
MigLayout layout = new MigLayout("debug");
JPanel panel = new JPanel(layout);
panel.add(buttonsPanel, "wrap");
panel.add(scrollPane, "growx"); // Note "growx" here
屏幕截图
3.添加带有“ growx”和“ fillx”约束的滚动窗格
片段
MigLayout layout = new MigLayout("debug, fillx"); // Note "fillx" here
JPanel panel = new JPanel(layout);
panel.add(buttonsPanel, "wrap");
panel.add(scrollPane, "growx"); // Note "growx" here
屏幕截图