AbstractTableModel을 사용하여 JTable 만들기
각 JTable 에는 연관된 모델이 있습니다. 당신은 이것을 깨닫지 못할 수도 있지만 2 차원 배열을 만들 때 기본적으로 생성됩니다 :개체[][] 데이터 = {{1,2,3},{2,3,4},{4,5,6},{7,8,9}}; 문자열[] 제목= {"열 1", "Column2", "Column3"}; JTable 예JTable = new JTable (데이터, 열 이름)}; |
다행히도 테이블 템플릿을 거치지 않고 JTable 개체를 사용할 수 있습니다. 예를 들어, 셀 (2, 3)의 방법을 찾으려면 getValueAt:
System.out.println(exampleJTable.getValueAt(2, 2)); |
TableModel byDefault = exampleJTable.getModel(); System.out.println(exampleJTable.getValueAt(2, 2).toString()); |
TableModel 인터페이스를 구현하는 두 개의 클래스, DefaultTableModel 및 AbstractTableModel.
- AbstractTableModel은 대부분의 TableModel 메서드를 구현합니다.
- DefaultTableModel 은 데이터가 배열에 저장되는 세 가지 구현 된 메소드가있는 AbstractTableModel 의 서브 클래스입니다.
- public int getRowCount(): 반품 줄 수.
- public int getColumnCount(): 열 수를 반환합니다.
- public Object getValueAt(int row, int column): (행, 열) 상자에 개체를 반환합니다.
AbstractTableModel을 사용하면 데이터를 자유롭게 저장할 수 있지만 JTable과 상호 작용할 수 있는 메서드를 구현해야 합니다. 구현되는 메서드의 수는 데이터 관리 방법에 따라 달라집니다. 읽으려면 언급 된 3 가지 방법 만 충분하지만 수정 (행 또는 열 추가, 삭제)하려면 테이블의 템플릿에 저장된 데이터를 수정하는 다른 방법을 구현해야합니다.
테이블 모델 생성
class 모델은 AbstractTableModel{이 코드는 템플릿을 테이블과 연결합니다
private Object[][] 데이터를 확장합니다.
개인 문자열[] 제목;
public Model(Object[][] data, String[] title){
this.data = data;
this.title = 제목;
}
/**
* 열 제목과 인덱스를 반환합니다
*/
public String getColumnName(int col) {
return this.title[col];
}
/**
* 열 수를 반환합니다
*/
public int getColumnCount() {
return this.title.length;
}
/**
* 행 수를 반환합니다
*/
public int getRowCount() {
return this.data.length;
}
/**
* 행과 열의 교차점에 있는 객체를 반환합니다
*/
public Object getValueAt(int 행, int col) {
return this.data[행][col];
}
/**
* 행과 열이 교차하는 곳에서 개체 수정
*/
public void setValueAt(Object value, int row, int col) {
this.data[row][col] = value;
}
}
//JTable JTable 테이블 = new JTable(); //템플릿 만들기 모델 = new 모델 (데이터, 제목); //템플릿을 JTable table.setModel (모델); |