生长比growx更大的表

时间:2014-08-27 15:22:03

标签: java swing miglayout

我已按照以下方式配置了我的布局:

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

所以首先我要添加一个按钮组,然后我想尽可能大地扩展我的表,然后将下一个组件包装在下一个"行"。

然而,我的gui看起来像那样:

enter image description here

在这里,您显然无法从表格中看到任何值。因此,如何增长表格以便可以看到每个值?

感谢您的回答!

2 个答案:

答案 0 :(得分:3)

  

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

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

MigLayout layout = new MigLayout("debug");

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

话虽如此,pelase考虑以下进展。

1。添加滚动窗格,不用" growx"约束

<强>段

MigLayout layout = new MigLayout("debug");
JPanel panel = new JPanel(layout);
panel.add(buttonsPanel, "wrap");
panel.add(scrollPane);

<强>截图

Without growx constraint

2。使用&#34; growx&#34;添加滚动窗格;约束

<强>段

MigLayout layout = new MigLayout("debug");
JPanel panel = new JPanel(layout);
panel.add(buttonsPanel, "wrap");
panel.add(scrollPane, "growx"); // Note "growx" here

<强>截图

With growx constraint

3。使用&#34; growx&#34;添加滚动窗格;和&#34; fillx&#34;约束上

<强>段

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

<强>截图

With growx and fillx constraints

答案 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);
         }