我在让 JTable 出现在 JPanel 中遇到了一些困难。我使用 Netbeans GUI 构建器构建了 UI,然后从代码创建了 jtable,并尝试添加到现有的 GUI 构建的 jpanel 中。我无法弄清楚问题是什么。 代码的 jtable 部分的代码如下所示(数据由数据组成(。我怀疑我错过了使用 GUI 构建器时所需的一些步骤,因为如果我不使用 GUI 构建器,我可以让 jtable 工作
private void fillOrderDetailsJtable (){
String[] columnNames = {"Order Line No", "Product", "Quantity" };
Object[][] data = {
{"César Cielo", "Filho", "Brazil", "50m freestyle" },
{"Amaury", "Leveaux", "France", "50m freestyle"},
{"Eamon", "Sullivan", "Australia", "100m freestyle"},
};
JTable table = new JTable(data, columnNames);
table.setFillsViewportHeight(true);
JScrollPane tableScrollPane = new JScrollPane(table);
tableScrollPane.setPreferredSize(new Dimension(300, 50));
pnOrderLines.add(tableScrollPane);
Order_OrderLine.this.add(pnOrderLines);
// table.setAutoCreateRowSorter(true);
tableScrollPane.setVisible(true);
pnOrderLines.setVisible(true);
table.setVisible(true);
}
那么,您是否将 JTable 放在窗体中并检查 Netbeans 生成的代码,然后再从头开始尝试呢?
恕我直言,这是获取构建表单线索的最简单方法。
我假设您这样做并将生成的代码与您自己的代码进行比较。
有一些示例代码:
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
getContentPane().add(jScrollPane1);
jScrollPane1.setBounds(158, 100, 292, 246);
pack();