我有一个放置在JPanel中的JTable,然后将它放置在另一个具有ScrollPane的JPanel的JFrame中。如果解释混乱,可以在下面看到总体思路。我已经将我的JTable设置为自动调整最后一列的大小,但它从不自动调整大小。问题是什么?JTable不会自动调整最后一列的大小
的JFrame - >的JPanel - >的JTable
- >的JPanel - >滚动窗格
我的代码:
this
是指我的课延伸JFrame
this.setLayout(new BorderLayout());
JTextArea log = new JTextArea(20, 50);
log.setEditable(false);
JScrollPane logScrollPane = new JScrollPane(log);
String[] configRow = {"Config File", "Not Loaded"};
String[] logRow = {"Log File" , "Not Loaded"};
DefaultTableModel dtm = new DefaultTableModel();
dtm.addColumn("");
dtm.addColumn("");
dtm.addRow(configRow);
dtm.addRow(logRow);
JTable status = new JTable(dtm);
status.setTableHeader(null);
status.setShowGrid(false);
status.setEnabled(false);
status.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
JPanel tablePanel = new JPanel();
tablePanel.setLayout(new BorderLayout());
tablePanel.add(status, BorderLayout.LINE_START);
JPanel logPanel = new JPanel();
logPanel.add(logScrollPane);
this.add(tablePanel, BorderLayout.NORTH);
this.add(logPanel, BorderLayout.SOUTH);
你在这里寻找什么行为?你想让最后一列获得所有额外的空间吗?如果框架的尺寸缩小了,您是否只希望最后一列缩小? – wolfcastle 2011-04-27 20:37:57
最后一列将加载完整文件路径,所以我希望它根据该大小调整大小 – Hank 2011-04-27 20:42:26
因此,您希望表格根据模型中的数据更改来调整大小?那么我不认为'setAutoResizeMode'会帮助你。这只是基于用户实际调整列或包含表格的窗口来调整大小。如果您希望表格在列中显示的数据发生更改时调整其列的大小,则需要自行处理大小调整。 – wolfcastle 2011-04-27 21:11:12