JTable

JTable (2차원 격자로 데이터를 표시하는 테이블)

정규 2차원 테이블의 셀을 표시하고 편집하는 데 사용됩니다. 단순한 테이블을 쉽게 설정할 수 있도록 렌더링과 편집을 위한 기본값을 제공합니다.

출처: Java API Reference

본문

JTable은 정규 2차원 테이블의 셀을 표시하고 편집하는 데 사용됩니다. 렌더링과 편집을 맞춤 설정할 수 있는 많은 기능을 제공하면서도 단순한 테이블을 쉽게 구성할 수 있는 기본값을 제공합니다. 예를 들어 10행 10열의 숫자 테이블을 만들려면 다음과 같이 합니다.

TableModel dataModel = new AbstractTableModel() {
    public int getColumnCount() { return 10; }
    public int getRowCount() { return 10; }
    public Object getValueAt(int row, int col) { return Integer.valueOf(row*col); }
};
JTable table = new JTable(dataModel);
JScrollPane scrollpane = new JScrollPane(table);
public class JTable extends JComponent implements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, Accessible, RowSorterListener

JTable은 일반적으로 JScrollPane 안에 배치됩니다. 기본적으로 JTable은 가로 스크롤바가 필요 없도록 너비를 조정하지만, setAutoResizeMode(int)AUTO_RESIZE_OFF를 전달하면 가로 스크롤바를 허용할 수 있습니다. JScrollPane 밖의 독립 뷰에서 사용하면서 헤더를 표시하려면 getTableHeader()로 얻어 따로 표시합니다.

행의 정렬과 필터링을 활성화하려면 RowSorter를 사용합니다. table.setRowSorter(new TableRowSorter(model))처럼 직접 RowSorter를 설정하거나, setAutoCreateRowSorter(true)JTableRowSorter를 자동으로 만들게 할 수 있습니다.

DefaultTableModel은 셀 값을 저장하기 위해 VectorVector를 사용하는 모델 구현입니다. 데이터를 DefaultTableModel에 복사하는 대신 TableModel 인터페이스의 메서드에 데이터를 감싸서 위 예제처럼 JTable에 직접 전달할 수도 있습니다.

자세한 정보와 예제는 Java 튜토리얼의 "How to Use Tables"를 참고하세요.

더 알아보기 (Learn more)

Java 공식 API