【发布时间】:2013-08-25 18:11:53
【问题描述】:
我遇到了一个罕见的问题。
当我将代码放在按钮的事件中时,它可以工作并且表格可以正确显示,但是当我将它放在 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();
有什么想法吗?
【问题讨论】:
-
我将 jPanel1.getWidth() 更改为一个数字,它起作用了!就像那个函数在开始时返回 0 一样。我不知道为什么
-
你不应该设置 JScrollPane 的preferredSize,而是让你的布局管理器为你做。
-
如果我不设置preferredSize它会填满整个屏幕!
标签: java swing jtable jpanel jscrollpane