簡體   English   中英

使用TableModel刷新JTable中的數據時出錯

[英]error while refreshing the data in JTable using TableModel

我正在嘗試從JTable刷新數據。

此方法從數據庫中選擇數據:

public Object[][] getData() {
    Object[][] data = new Object[15][10];
    try {

        String query = "SELECT * from emailApp";
        rs = st.executeQuery(query);


        int i = 0;
        while (rs.next()) {
            int id = rs.getInt("id");
            int priority = rs.getInt("priority");
            String sender = rs.getString("sender");
            String recipient = rs.getString("recipient");
            String labelDb = rs.getString("label");
            String subject = rs.getString("subject");
            String message = rs.getString("message");


            data[i][0] = id;
            data[i][1] = sender;
            data[i][2] = priority;
            data[i][3] = recipient;
            data[i][4] = labelDb;
            data[i][5] = subject;
            data[i][6] = message;
            i++;

            if(i>15) break;

        }

    } catch(Exception ex) {
        System.out.println(ex);
    }

    return data;
}

然后,我使用此方法從JTable刷新數據:

public void setUpTableData() {
DefaultTableModel model = (DefaultTableModel) table.getModel();
DBConnect connect = new DBConnect();
Object[][] data = connect.getData();
Object[] modelData = new Object[15];

model.setRowCount(0);
for(int i = 0; i<15; i++) {
    if(data[i][0] == null) break;
    modelData[0] = data[i][0];
    modelData[1] = data[i][1];
    modelData[2] = data[i][2];
    modelData[3] = data[i][3];
    modelData[4] = data[i][4];
    modelData[5] = data[i][5];
    modelData[6] = data[i][6];

    model.addRow(data);
    }   

model.fireTableDataChanged();
table.setModel(model);
}

錯誤:線程“ AWT-EventQueue-0”中的異常java.lang.ClassCastException:javax.swing.JTable $ 1無法轉換為javax.swing.table.DefaultTableModel

然后我通過按下按鈕來調用此方法。 有人可以告訴我我在做什么錯。 謝謝!

因此,感謝MadProgrammer,我找出並解決了這個問題(以防有人遇到相同的問題)

public void refreshData() {
    DBConnect connect = new DBConnect(); 
    Object[][] data = connect.getData(); // collecting the data from DataBase after inserting, updating
    DefaultTableModel model = new DefaultTableModel(data, columnNames);  // creating a new DefaultTableModel with the new data
    table.setModel(model); // setting the DefaultTableModel to the table - Refreshing the table
} 

暫無
暫無

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

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