Java 在miglayou中调整表的大小
我创建了一个MigLayout,如下所示: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,
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。是否使用?