JTable
그냥 JTable 을 사용해도 되지만, 더 세밀하게 다루기 위해서 테이블모델을 사용한다.
- TableModel 인터페이스 = 최상위 인터페이스
* 메소드 : addTableModelListener(TableModelListener)
getColumnClass(int) -> 해당 컬럼의 타입 반환
getColumnCount() ->컬럼 총 개수 반환
getColumnName(int) -> 해당 컬럼의 이름 반환
getRowCount() -> 총 행 개수 반환
getValueAt(int,int) -> 해당열과 행 위치에 있는 데이터 반환
setValueAt(Object,int,int) -> 특정 위치번째에 원하는 오브젝트 타입의 개체를 세팅 시킬수 있음
즉. 첫번째 지정한 오브젝트는 밸류 임
- AbstractTableModel = 테이블 모델 상속받은, abstractclass
findColumn(String) - > 해당 벨류가 있는 컬럼을 찾을 수 있음.
기타 상속 메소드
- DefaultTableModel = abstractTabelModel 을 상속받은 클래스
addColumn(컬럼명) -> 컬럼 추가
addColumn(컬럼명,배열) -> 컬럼추가 및 데이터 추가 ( 벡터 가능 )
addRow(배열) -> 배열 단위로 행 추가
getDataVector() -> 테이블 내 데이터를 벡터로 뽑아냄
insertRow(행번호,배열) -> 지정하는 행 번호 위치에 데이터를 삽입함
moveRow(시작행번호,마지막행번호,이동할행번호) - > 해당 행 번호 데이터를, 이동할 행번호로 이동
removeRow(행번호) -> 해당 행 번호 데이터를 삭제
setColumnIdentifiers(배열 ) -> 컬럼명을, 해당 배열로 치환 시킴
setDataVector(2차월배열,1차원배열) -> 데이터 모두를 치환시킴
------------------------
TableColumnModel 인터페이스 -> 최상위 인터페이스
DefaultTableColumnModel -> 테이블컬럼모델을 구현한 클래스
디폴트 생성자만 존재하며, 생성 당시, 디폴트는 아무것도 없는 상태.
* 메소드
addColumn(TableColumn)
기타 등등..
TableColumn
* 생성자
디폴트 생성자,
TableColumn(int) : 테이블의 인덱스 위치 지정 하여
TableColumn(int,int) : 인덱스 위치, 컬럼 폭 지정
TableColumn(int,int,TableCellRenderer,TableCellEditor) : 인덱스, 컬럼폭, 셀속성,셀에디터
setIdentifier , setHeaderValue 메소드를 이용해, 컬럼이름을 별도로 지정해야함
TableCellRenderer
셀에 대한 옵션 지정할 수 있는 클래스
setBackground(Color) , setForeground(Color) ,
TableCellEditor
상속관계 : CellEditor 인터페이스 -> AbstractCellEditor 셀에디터 인터페이스 구현 - > DefaultCellEditor 클래스
테이블셀 에디터를 이용해서, 셀에 콤보박스나, 체크박스를 활용할 수 있음
디폴트 셀 에디터 생성자
ListSelectionModel 인터페이스 -> DefaultListSelectionModel 리스트셀렉션모델 인터페이스 구현한 클래스
* 메소드
addSelectionInterval(인덱스,인덱스) -> 지정한 인덱스는 선택된 상태로 활성화 됨 .
clearSelection() -> 선택된 영역 비선택 상태로 변경
setSelectionMode(Field) -> 해당 클래스의 필드를 이용해, 선택 모드를 변경할 수 있음
예) 싱글 셀렉션 모드로 할 시, 한 행만 선택 됨
그외에, JTable 의 메소드만 이용하더라도 무수히 많음.... 굳이 모든 클래스 이용하지 안아도 댐............
테이블의 속성 상, 컬럼을 마우스로 이동 시킬 수 있는데. 이를 false 하고자 한다면..
JTableHeader 의 , setReorderingAllowed(false) 지정 하면 되는데..
다른 클래스에도 이 메소드가 있는지는 모름
컬럼의 리사이징 을 막는 것도 있는데
setResizingAllowed(false) 메소드 이용하면 됨.
setUpdateTableinRealTime(boolean) -> 실시간 테이블 업데이트 여부
예제 소스
'JAVA > Swing' 카테고리의 다른 글
JTable Event Listener (0) | 2013.03.01 |
---|---|
JTree (0) | 2013.03.01 |
Action 인터페이스 (0) | 2013.03.01 |
Timer , ToolTipManager (0) | 2013.03.01 |
JSpinner, 스피너 모델 , JSplitPane (0) | 2013.03.01 |