본문 바로가기

JAVA /Swing

JTable


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) -> 실시간 테이블 업데이트 여부 
  
    
   예제 소스
    

Exam02.java


    
    
    
    

'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