JTable不在初始化中显示

时间:2013-08-25 18:11:53

标签: java swing jtable jpanel jscrollpane

我遇到了一个罕见的问题。 当我把代码放在一个按钮的事件中它可以工作并且表格被正确显示,但当我把它放在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();

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

  • 替换Dimension dim = new Dimension(jPanel1.getWidth(),jPanel1.getHeight());

  • 因为在JFrame.pack()JFrame.setVisible(true)之前返回零维度[0,0]


  • table.setPreferredScrollableViewportSize(table.getPreferredSize());