我需要使用JTable填充数据。我提到的博客很少,但是仍然找不到原因。
在Java应用程序中,创建以下MainFrame
public static void main(String[] args) {
MainFrame customerFrame = new MainFrame();
customerFrame.setVisible(true);
}
在此框架中,它将加载JDialog(“ CustomerDialog”)。加载对话框时,我编写了以下代码来创建名为“ tblCustomr” 的JTable,并希望在加载“ CustomerDialog”
时加载表数据public CustomerDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
tblCustomer = new JTable(loadTable());
initComponents();
}
private DefaultTableModel loadTable(){
String[] columns = {"Customer Id", "Customer Name", "Customer Address"};
DefaultTableModel tableModel = new DefaultTableModel();
for(String col:columns) {
tableModel.addColumn(col);
}
//tblCustomer.add(tableModel);
List<Object[]> customers = new CustomerService().getAllCustomers();
for(Object[] obj: customers) {
tableModel.addRow(obj);
}
return tableModel;
}
“ tableModel” 同时包含列和一行。但是它没有显示共享记录中的表记录。。记录应该在面板名称的上方明显显示为“客户记录编辑器”。
有人可以告诉我我在这里错过了什么吗,或者这不是正确的方法。
我推荐此博客为“ http://www.kode-blog.com/java-swing-jdbc-crud-example-with-jasper-reports”
答案 0 :(得分:0)
tblCustomer = new JTable(loadTable());
我们不知道是否将表添加到JScrollPane,然后将滚动窗格添加到框架。
String[] columns = {"Customer Id", "Customer Name", "Customer Address"};
DefaultTableModel tableModel = new DefaultTableModel();
for(String col:columns) {
tableModel.addColumn(col);
}
不要手动创建列。您可以使用:
DefaultTableModel tableModel = new DefaultTableModel(columns, 0);
,然后让DefaultTableModel为您完成工作。
for(Object[] obj: customers) {
tableModel.addRow(obj);
}
您是否调试了上面的代码以查看是否实际有数据?您可以在循环中添加显示以显示每一行,也可以在循环显示TableModel的行数之后添加
。