簡體   English   中英

來自 arraylist 的數據未添加到 tableModel

[英]data from arraylist is not added to tableModel

我使用JTable(tableModel)JPanel制作了一個 GUI,用戶可以通過JTextFields將數據添加到Arraylist ,但是由於某種原因,當我單擊添加JButton時,添加失敗並指向我想要添加 arraylist 的行到 tableModel 的行。

public final static ArrayList<Members> adat = new ArrayList<>();

DefaultTableModel tableModel;
        String[][] dummy = new String[][]{{"001", "Jack Black", "London", "20"}};
        String[] header = new String[]{"id", "Name", "City", "Age"};
        tableModel = new DefaultTableModel(dummy, header);
        JTable t = new JTable();
        t.setModel(tableModel); 
        panel1.add(new JScrollPane(t));
        frame.add(panel1);

        JPanel jp = new EditPanel();
        frame.add(jp);
public static void newData() {                     // the "add" button function
         Members newMember = null;
            try {
                newMember = new Members(
                        Integer.parseInt(EditPanel.idEdit.getText()), 
                        EditPanel.nameEdit.getText(), 
                        EditPanel.cityEdit.getText(), 
                        Integer.parseInt(EditPanel.ageEdit.getText()) 
                );
                adat.add(newMember);
            } catch (NumberFormatException ex) {
                JOptionPane.showMessageDialog(null, ex.getMessage(), "Error in modification", ERROR_MESSAGE);
            }
            toTable();
        }

和 toTable toTable()方法獲取從arraylistJTable的成員數據

     static void toTable() {                 // adding the users data to the table 

        if (adat.size() > 0) {
            for (int i = 0; i < adat.size(); i++) {
                int id = adat.get(i).id;
                String name = adat.get(i).name;
                String city = adat.get(i).city;
                int age = adat.get(i).age;

                Object[] data = new Object[4];

                data[0] = id;
                data[1] = name;
                data[2] = city;
                data[3] = age;                

                tableModel.addRow(data);   // this is the line where the error points

            }
        }        
    }

您在tableModel.addRow(data);遇到錯誤因為tableModel沒有名為addRow ( docs ) 的方法。
您可能將DefaultTableModel tableModel與實際的JTable t混淆了。
它應該是t.addRow(data) ,盡管您需要先將t設為全局!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM