[英]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.