我已按照以下方式配置了我的布局:
panel.add(addButtons(), "wrap");
panel.add(showTable(), "growx, wrap");
所以首先我要添加一个按钮组,然后我想尽可能大地扩展我的表,然后将下一个组件包装在下一个"行"。
然而,我的gui看起来像那样:
在这里,您显然无法从表格中看到任何值。因此,如何增长表格以便可以看到每个值?
感谢您的回答!
答案 0 :(得分:3)
在这里你显然看不到表中的任何值。因此,如何增长表格以便可以看到每个值?
正如我在评论中所说,我不认为您的问题是关于列(首选|最大|最大)大小,而是布局管理器的默认行为:MigLayout。正如this answer中所述默认情况下,MigLayout
中的行不会填充所有可用宽度,而只是显示最长行(基于组件宽度)所必需的。如果你启用" debug"你可以看到这个事实。实例化布局时的功能:
MigLayout layout = new MigLayout("debug");
据我了解您的问题,您需要结合使用growx
和fillx
约束。第一个是组件约束,另一个是布局约束。
话虽如此,pelase考虑以下进展。
<强>段强>
MigLayout layout = new MigLayout("debug");
JPanel panel = new JPanel(layout);
panel.add(buttonsPanel, "wrap");
panel.add(scrollPane);
<强>截图强>
<强>段强>
MigLayout layout = new MigLayout("debug");
JPanel panel = new JPanel(layout);
panel.add(buttonsPanel, "wrap");
panel.add(scrollPane, "growx"); // Note "growx" here
<强>截图强>
<强>段强>
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
<强>截图强>
答案 1 :(得分:2)
您可以使用javax.swing.table.TableColumn;
TableColumn custom_column = yourTable.getColumnModel().getColumn(1); // 1 means column 1
custom_column.setPreferredWidth(500);
如果你想扩大所有列,你可以使用循环:
TableColumn custom_column ;
int numberOfColumns = yourTable.getColumnModel().getColumnCount();
for(int y= 0;y<numberOfColumns;y++){
custom_column=table.getColumnModel().getColumn(y);
custom_column.setMinWidth(500);
}