package com.ljh;
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class JTable_dynamic_data extends JFrame {
private Container con;
private String[] str = {"1번", "2번", "3번", "4번"};
//JTable의 header에 출력되는 문자열 배열
//DefaultTableModel은 JTable의 기본 형태를 제공하는 클래스
//이 클래스의 생성자에는 (header, 행의 갯수);
private DefaultTableModel dtm = new DefaultTableModel(str, 5);
//설정이 완료된 DefaultTableMode 객체를 JTable의 생성자에게 전달....
private JTable jt = new JTable(dtm);
//JScrollPane은 스크롤 기능을 제공하는 클래스...
//JScrollPane의 생성자 스크롤 기능을 부여할 객체를 전달...
private JScrollPane jsp = new JScrollPane(jt);
public JTable_dynamic_data() {
super("Test");
con = getContentPane();
con.setLayout(new BorderLayout(5,5));
con.add("Center", jsp);
this.setSize(300, 200);
this.setVisible(true);
System.out.println("1. Column's Class Name = " + dtm.getColumnClass(0)); // java.lang.Object
System.out.println("Column Count = " + dtm.getColumnCount() ); // 4
System.out.println("3. Column's Name = " + dtm.getColumnName(2)); // 3번
System.out.println("Row Count = " + dtm.getRowCount()); // 5
System.out.println("2, 2 Editable = " + dtm.isCellEditable(2, 2)); // true
System.out.println("2번 Column's Pos = " + dtm.findColumn("2번")); // 1
String[] s = {"1", "2", "3", "4", "5"};
dtm.addColumn("5번", s); //컬럼 추가
String[] a = {"true", "true", "true", "true", "true"};
dtm.addRow(a); //행 추가
String[] b = {"false", "false", "false", "false", "false"};
dtm.insertRow(0, b); //행 삽입
dtm.moveRow(1, 3, 0); //행 이동
String[] sss = {"11", "22", "33", "44", "55"};
dtm.setColumnIdentifiers(sss); //컬럼 제목 설정
dtm.setRowCount(14); //행의 총 갯수 설정
dtm.setNumRows(8); //행의 총 갯수 설정
dtm.setValueAt("Test", 2, 2); // 특정 셀의 값 지정
//Default 있어야 함 / 렌더링 되어져야함
}
}
댓글
댓글 쓰기