JTable은 정말 엄청엄청 복잡한 컴포넌트입니다.

컴포넌트는 JTable이지만 관련된 클래스가 아주 많습니다.

사실 정확하게 실무에서 쓰는 방식으로 구현하시려면

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html를 참고하셔서 구현하셔야 합니다.실무에서 쓰고 안쓰고가 중요한게 아니라 사실 하시다 보면 그게 편하다 라는 것을 느끼실거예요.

 

JTable을 구현하기 위해 필요한 클래스들은 TableModel,TableCellRenderer,TableCellEditor,

TableColumn,JTableHeader,TableColumnModel정도 입니다.

 

TableModel

JTable의 데이터를 관리할 수 있는 객체입니다.

사실 그냥 Vector로 데이터를 넣고 셋팅하는 방법보다 이 모델이 갖고 있는 여러 메소드를 여러분들이 원하는 형태대로 실행되도록 만드려면 이객체를 상속해서 아예 TableModel클래스를 만들어 버리면 쉽게 작업할 수 있습니다.

보통은 TableModel말고 이 클래스의 하위클래스인 AbstractTableModel을 상속하여 나만의 테이블 모델을 생성하여 작업합니다.
http://docs.oracle.com/javase/tutorial/uiswing/components/table.html에 나와있는 참고자료도 이러한 방법으로 작업한 예입니다.

 

TableColumn

JTable의 컬럼을 모델링한 객체입니다. 실제로 JTable에 값이 뿌려지는건 컬럼 하나 하나의 값을 가져다 출력하며 이를 관리하는 객체가 바로 TableColumn입니다.

 

TableColumnModel

TableColumn이 여러개 존재하므로 이를 관리할 객체가 바로 TableColumnModel입니다.

 

TableCellRenderer

JTable에 셀이 그려지는 것과 관련된 객체이며 만약 JTable의 셀에 체크박스나 버튼같이 다른 컴포넌트를 넣고 싶으면 이 객체를 상속해서 그러한 작업을 수행하도록 재지정하는 작업을 해야 합니다.

 

TableCellEditor

클래스이며 특정셀을 수정하고 업데이트할 때 필요합니다.

 

 

+ Recent posts