我创建了一个 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 void tableProperties(JTable table) {
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
}
有什么建议可以解释为什么我的表格列不拉伸(stretch)吗?
感谢您的回答!
如果您希望表格自动调整大小,请尝试在 createLayout
方法中使用以下构造函数 JPanel panel = new JPanel(new MigLayout("debug 400,wrap 1","[grow,fill]","[grow,fill]"))
并在 resultsTable
方法中使用以下构造函数 JPanel panel = new JPanel(new MigLayout("","[生长,填充]","[生长,填充]"))
我是一名优秀的程序员,十分优秀!