Java 在miglayou中调整表的大小

Java 在miglayou中调整表的大小,java,swing,layout,layout-manager,miglayout,Java,Swing,Layout,Layout Manager,Miglayout,我创建了一个MigLayout,如下所示: public JScrollPane createLayout() { JPanel panel = new JPanel(new MigLayout("debug 400")); JScrollPane sp; JLabel lab = new JLabel(labelValue); lab.setFont(new Font("Tahoma", Font.BOLD, 15)); panel.add(lab,

我创建了一个MigLayout,如下所示:

public JScrollPane createLayout() {
    JPanel panel = new JPanel(new MigLayout("debug 400"));
    JScrollPane sp;

    JLabel lab = new JLabel(labelValue);
    lab.setFont(new Font("Tahoma", Font.BOLD, 15));

    panel.add(lab, "wrap");
    panel.add(resultsTable(), "growx, wrap");
    panel.add(resultsButtons(), "wrap");

    //set table properties
    tableProperties(resultTable);
    updateResultsTable();

    sp = new JScrollPane(panel);
    sp.repaint();
    sp.validate();

    return sp;
}
private JPanel resultsTable() {
    JPanel panel = new JPanel(new MigLayout(""));
    JScrollPane scrollTablePane;
    rtm = new ResultTableModel(resultList);
    resultTable = new JTable(rtm);
    scrollTablePane = new JScrollPane(resultTable);
    sorter = new TableRowSorter<TableModel>(resultTable.getModel());
    resultTable.setRowSorter(sorter);

    scrollTablePane.repaint();
    scrollTablePane.validate();

    //add to panel
    panel.add(scrollTablePane);
    panel.repaint();
    panel.validate();

    return panel;
}

如您所见,该表的大小调整不正确

我正在创建这样的布局:

public JScrollPane createLayout() {
    JPanel panel = new JPanel(new MigLayout("debug 400"));
    JScrollPane sp;

    JLabel lab = new JLabel(labelValue);
    lab.setFont(new Font("Tahoma", Font.BOLD, 15));

    panel.add(lab, "wrap");
    panel.add(resultsTable(), "growx, wrap");
    panel.add(resultsButtons(), "wrap");

    //set table properties
    tableProperties(resultTable);
    updateResultsTable();

    sp = new JScrollPane(panel);
    sp.repaint();
    sp.validate();

    return sp;
}
private JPanel resultsTable() {
    JPanel panel = new JPanel(new MigLayout(""));
    JScrollPane scrollTablePane;
    rtm = new ResultTableModel(resultList);
    resultTable = new JTable(rtm);
    scrollTablePane = new JScrollPane(resultTable);
    sorter = new TableRowSorter<TableModel>(resultTable.getModel());
    resultTable.setRowSorter(sorter);

    scrollTablePane.repaint();
    scrollTablePane.validate();

    //add to panel
    panel.add(scrollTablePane);
    panel.repaint();
    panel.validate();

    return panel;
}
我的表是这样创建的:

public JScrollPane createLayout() {
    JPanel panel = new JPanel(new MigLayout("debug 400"));
    JScrollPane sp;

    JLabel lab = new JLabel(labelValue);
    lab.setFont(new Font("Tahoma", Font.BOLD, 15));

    panel.add(lab, "wrap");
    panel.add(resultsTable(), "growx, wrap");
    panel.add(resultsButtons(), "wrap");

    //set table properties
    tableProperties(resultTable);
    updateResultsTable();

    sp = new JScrollPane(panel);
    sp.repaint();
    sp.validate();

    return sp;
}
private JPanel resultsTable() {
    JPanel panel = new JPanel(new MigLayout(""));
    JScrollPane scrollTablePane;
    rtm = new ResultTableModel(resultList);
    resultTable = new JTable(rtm);
    scrollTablePane = new JScrollPane(resultTable);
    sorter = new TableRowSorter<TableModel>(resultTable.getModel());
    resultTable.setRowSorter(sorter);

    scrollTablePane.repaint();
    scrollTablePane.validate();

    //add to panel
    panel.add(scrollTablePane);
    panel.repaint();
    panel.validate();

    return panel;
}
有什么建议可以解释为什么我的表中的列不拉伸


谢谢你的回答

如果您希望表格能够自动调整大小,请尝试在
createLayout
方法中使用以下构造函数
JPanel panel=new JPanel(new migloayout(“debug 400,wrap 1”),“[grow,fill]”,“[grow,fill]”,
和在
resultsTable
方法中使用以下构造函数
JPanel panel panel=new JPanel(new migloayout(“,”[grow,fill],“[grow,fill]”)查看此相关问答:。我在您的代码中遇到了一些缺少的标识符:resultsButtons()、resultable、updateResultsTable()、rtm、类resultableModel[来自NCSA、gSwing、DFKI?]、resultList和sorter。是否使用?