我有一个JTable放在一个JPanel中,然后放在一个JFrame中,另一个JPanel有一个ScrollPane。如果解释令人困惑,可以在下面看到一般的想法。我已将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);
答案 0 :(得分:2)
您的JTable必须放在JScrollPane中才能使调整大小正常工作。您将JTable直接放在JPanel上。
tablePanel.add(new JScrollPane(status), BorderLayout.LINE_START):