AbstractTableModel 類別用於表示 JTable 中的資料。它提供了檢索表中每個單元格資料的方法,以及從表中新增或刪除行和列的方法。
在提供的程式碼中,TableModel 類別用於顯示資料庫的結果在 JTable 中查詢。但是,表格的顯示方式有兩個問題。
這是修復這兩個問題的TableModel 類別的修改版本:
import java.util.List; import javax.swing.table.AbstractTableModel; public class TableModel extends AbstractTableModel { private List<String[]> data; private String[] columnNames; public TableModel(List<String[]> data, String[] columnNames) { this.data = data; this.columnNames = columnNames; } @Override public int getRowCount() { return data.size(); } @Override public int getColumnCount() { return columnNames.length; } @Override public Object getValueAt(int rowIndex, int columnIndex) { return data.get(rowIndex)[columnIndex]; } @Override public String getColumnName(int columnIndex) { return columnNames[columnIndex]; } public void addRow(String[] rowData) { data.add(rowData); fireTableRowsInserted(data.size() - 1, data.size() - 1); } public void removeRow(int rowIndex) { data.remove(rowIndex); fireTableRowsDeleted(rowIndex, rowIndex); } public void updateData(List<String[]> newData) { data = newData; fireTableDataChanged(); } }
This TableModel 類別的修改版本包括以下變更:
這些變更將解決表格顯示方式的兩個問題。
以上是為什麼當資料更改時我的 AbstractTableModel GUI 無法正確更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!