我遇到了一个罕见的问题。
当我把代码放在一个按钮的事件中它可以工作并且表格被正确显示,但当我把它放在initComponents()
函数下面(在构造函数内)它不起作用。
String[] columnNames = {"Nick", "E-Mail"};
Object[][] data = {
{"Kathy", "abc@hotmail.com"},
{"John", "Doe"},
{"Sue", "Black"},
{"Jane", "White"},
{"Joe", "Brown"}
};
jPanel1.setLayout(new BorderLayout());
JTable table = new JTable(data, columnNames);
Dimension dim = new Dimension(jPanel1.getWidth(),jPanel1.getHeight());
JScrollPane tableScroll = new JScrollPane(table);
tableScroll.setPreferredSize(dim);
jPanel1.add(tableScroll, BorderLayout.CENTER);
jPanel1.validate();
有什么想法吗?
答案 0 :(得分:3)
替换Dimension dim = new Dimension(jPanel1.getWidth(),jPanel1.getHeight());
因为在JFrame.pack()
或JFrame.setVisible(true)
之前返回零维度[0,0]
table.setPreferredScrollableViewportSize(table.getPreferredSize());