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(); } }
이것은 TableModel 클래스의 수정된 버전에는 다음 변경 사항이 포함됩니다.
이러한 변경 사항은 테이블 표시 방식과 관련된 두 가지 문제를 해결합니다.
위 내용은 데이터가 변경될 때 AbstractTableModel GUI가 올바르게 업데이트되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!