我已经像这样配置了布局:

    panel.add(addButtons(), "wrap");
    panel.add(showTable(), "growx, wrap");


因此,首先我要添加一个按钮组,然后我希望将表扩大到最大,然后在下一个“行”中包装下一个组件。

但是,我的GUI看起来像这样:



在这里,您显然看不到表格中的任何值。因此,如何扩展表以便可以看到每个值?

感谢您的回答!

最佳答案

在这里,您显然看不到表格中的任何值。因此,如何扩展表以便可以看到每个值?


正如我在评论中所说,我不认为您的问题与列(首选|最小|最大)大小有关,而是布局管理器的默认行为:MigLayout。如this answer中所述,默认情况下MigLayout中的行不会填充所有可用宽度,而仅是显示最长行(基于组件宽度)所必需的。如果在实例化布局时启用“调试”功能,则可以看到此事实:

MigLayout layout = new MigLayout("debug");


据我了解您的问题,您需要同时使用growxfillx约束。第一个是组件约束,另一个是布局约束。

话虽如此,请考虑以下发展。

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


屏幕截图

08-25 20:39