1. TableModel은 출력될 데이터를 가진 테이블을 제공하는 기능 수행
- 테이블의 차원(열과 행의 수)
- 테이블의 각 열이 가지고 있는 데이터 타입
- 출력될 열 헤더
- 각 셀의 값이 에디트될 수 있는지 여부
2. AbstractTableModel에 제공되는 메소드
(1) 컬럼의 갯수를 반환한다.
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return 0;
}
(2) 행의 갯수를 반환한다.
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return 0;
}
(3) 특정 셀과 관계된 값을 반환한다
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return null;
}
3. 간단한 예제 >>
package jtable.datamodel;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.table.AbstractTableModel;
/**
* 테이블에서 사용할 데이터 클래스
*/
public class TableValues extends AbstractTableModel{
public final static int FIRST_NAME = 0;
public final static int LAST_NAME = 1;
public final static int DATE_OF_BIRTH = 2;
public final static int ACCOUNT_BALANCE = 3;
public final static int GENDER = 4;
public final static boolean GENDER_MALE = true;
public final static boolean GENDER_FEMALE = false;
public Object[][] values = {
{"Clay", "Ashworth", new GregorianCalendar(1962, Calendar.FEBRUARY, 20).getTime(),
new Float(12345.67), new Boolean(GENDER_MALE)},
{"Jacob", "Ashworth", new GregorianCalendar(1987, Calendar.JANUARY, 6).getTime(),
new Float(23456.78), new Boolean(GENDER_MALE)},
{"Jordan", "Ashworth", new GregorianCalendar(1989, Calendar.AUGUST, 31).getTime(),
new Float(34567.89), new Boolean(GENDER_FEMALE)},
{"Evelyn", "Kirk", new GregorianCalendar(1945, Calendar.JANUARY, 16).getTime(),
new Float(-456.70), new Boolean(GENDER_FEMALE)},
{"Belle", "Spyres", new GregorianCalendar(1907, Calendar.AUGUST, 2).getTime(),
new Float(567.00), new Boolean(GENDER_FEMALE)}
};
/**
* 컬럼의 갯수를 반환한다.
* @return
*/
@Override
public int getColumnCount() {
return values[0].length;
}
/**
* 행의 갯수를 반환한다.
* @return
*/
@Override
public int getRowCount() {
return values.length;
}
/**
* 특정 행과 열의 값을 반환한다.
* @param row
* @param column
* @return
*/
@Override
public Object getValueAt(int row, int column) {
return values[row][column];
}
}