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
클래스이며 특정셀을 수정하고 업데이트할 때 필요합니다.
'프로그래밍언어 > Java' 카테고리의 다른 글
JTable을 클릭했을때 새 창이 뜨며 선택한 값 전달되도록 작성하기 (0) | 2019.06.25 |
---|---|
JTable을 셀을 클릭했을때 이벤트 처리하기 (0) | 2019.06.25 |
JSplitPane을 이용하여 화면을 분할하고 JPanel에 Border 적용하기 (0) | 2019.06.25 |
swing 이벤트 개요 (0) | 2019.06.14 |
자바플랫폼의 개요 및 특징 (0) | 2019.06.04 |