オブジェクト配列からJTableを作成しようとしましたが、何も表示されません。テーブルに値を設定するメソッドコードを次に示します。 system.out.printlnを使用すると、データが正しく渡されているかどうか、変数内に値があるかどうかを確認できます。arrylistの値をjtableに渡す
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);
}
}
}
}
このメソッドは、ユーザーがコンボボックスから項目を選択するときに呼び出されます。インターフェースからのデータが表示されている場合でも、
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);
のみテーブルヘッダが表示されます。ここでは
cityCombobox1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
selCity1 = cityCombobox1.getSelectedItem().toString();
if(itr.next() == "Non-Citadel"){
outlet.populateTable(outletList1, selCity1);
}
}
はテーブルとのDefaultTableModelのための私のGUIコードです:このパネルは、JTableは作成される前ページですコンソールで誰かがJTableにデータ値を正しく渡す方法についての解決策を持っているなら、それはすばらしいでしょう!私は、列名を持つ
がを設定すると思いますが、テーブルに
dtm = new DefaultTableModel(columnNames, 0);
pjpTable = new JTable(dtm);
を設定
f = new Fourth(); JTableとDefaultTableModelを保持するGUIクラスです。そのために残念!あなたの提案を試してみる – beyonchayyy
これは、私にとっても、メソッドの悪い設計(populateTable)のようなものです。このメソッドがString [] [] datasオブジェクトデータの代わりにString []データを返すようにするには、更新後にdtmをテーブルに設定する必要があるかもしれません。 –