这应该很容易解决,但我只是没有看到。下面的 JPanel 只包含一个 ScrollPane(包含一个表格)和一个按钮。
我需要知道表格的实际列宽。单击按钮确实显示了正确的值,但内部调用只为每列输出 75(默认值)。如何在此处的代码中获得正确的结果?
public MyPanel() { //JPanel
setLayout(new BorderLayout());
this.setBounds(0, 0, 1000, 250);
table = new JTable(5,6);
JScrollPane sp = new JScrollPane(table);
this.add(sp, BorderLayout.CENTER);
JButton b = new JButton("Test");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
displayWidths(); //DOES WORK!
}
});
this.add(b, BorderLayout.SOUTH);
displayWidths(); //DOES NOT WORK!
}
private void displayWidths() {
for (int i = 0; i < table.getColumnCount(); i++) {
TableColumn column = table.getColumnModel().getColumn(i);
System.out.println("Width of column " + i + " : " + column.getWidth());
}
}