【发布时间】:2016-05-02 08:42:16
【问题描述】:
我一直在尝试从一个对象数组中填充一个 JTable,但没有任何结果。这是填充表格的方法代码。 system.out.println 使我能够检查数据是否正确传递,以及变量中是否存在值。这是来自界面:
public void populateTable(ArrayList<Outlet> outletList, String selection){
f = new Fourth();
for(int i = 0; i<outletList.size(); i++){
if(outletList.get(i).getCity().equalsIgnoreCase(selection)){
if(outletList.get(i).getStatus().equals("ACTIVE")){
String bar = outletList.get(i).getBarangay();
String code = Integer.toString(outletList.get(i).getCode());
String name = outletList.get(i).getName();
System.out.println(bar);
System.out.println(code);
System.out.println(name);
Object[] data = {bar, code, name};
System.out.println("DATA: " + data[0].toString()); //correct
System.out.println("DATA: " + data[1].toString()); //correct
System.out.println("DATA: " + data[2].toString()); //correct
f.getDtm().addRow(data);
}
}
}
}
当用户从组合框中选择一个项目时调用此方法。这个面板是创建JTable之前的页面:
cityCombobox1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
selCity1 = cityCombobox1.getSelectedItem().toString();
if(itr.next() == "Non-Citadel"){
outlet.populateTable(outletList1, selCity1);
}
}
这是我的表格和默认表格模型的 gui 代码:
String[] columnNames = new String[]{"Barangay", "Name", "Code"};
dtm = new DefaultTableModel(columnNames, 0);
pjpTable = new JTable(dtm);
scrollPane = new JScrollPane(getPjpTable());
tablePanel.add(new JScrollPane(getPjpTable()));
mainFrame.add(mainPanel);
mainFrame.add(tablePanel,BorderLayout.SOUTH);
即使来自界面的数据显示在控制台中,也只会显示表头。如果有人有关于如何正确地将数据值传递给 JTable 的解决方案,那就太棒了!
【问题讨论】:
标签: java