AbstractTableModel クラスは、JTable 内のデータを表すために使用されます。テーブル内の各セルのデータを取得したり、テーブルに行や列を追加または削除したりするためのメソッドが提供されます。
提供されたコードでは、TableModel クラスを使用してデータベースの結果を表示しています。 JTable でクエリを実行します。ただし、表の表示方法には 2 つの問題があります。
これら 2 つの問題を修正する 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(); } }
これTableModel クラスの修正バージョンには、次の変更が含まれています:
これらの変更により、テーブルの表示方法に関する 2 つの問題が修正されます。
以上がデータが変更されると AbstractTableModel GUI が正しく更新されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。