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中文网其他相关文章!