본문 바로가기

Programming/JAVA

[Swing] JTable 생성하기. 초기 데이터 입력하기



  1. new JTable();                  // 로 만드세용
  2. new JScrollPane(Component c);  // 이거니까 여기에 JTable 도 들어갈수있어요.
  3.                                // 스크롤 판넬이니까 테이블이 공간보다 크면 스크롤바 나와서 좋아요
  4. table = new JTable();
  5. pane = new JScrollPane(table);
  6. this.add("Center", pane);

 

이렇게 만든 JTable 의 setModel(TableModel t) 매소드를 이용해서 데이터를 넣는다.

 

먼저 TableModel 객체에 데이터들과 컬럼을 넣어야 한다.

 

 

 

TableModel을 만들기위해

 

DefaultTableModel 을 상속받아서 클래스를 만들자.

 

class MyTableModel extends DefaultTableModel { //이렇게 만들어보자.

 

DefaultTableModel을 상속받았으니 아래와 같은 매소드를 사용 할 수 있다.

 

 

setDataVector(Vector datavector, Vector columnIdentifier);

 

 

 데이터벡터 만들기 

 

데이터 벡터에 row(행) 이 들어가고

columnIdentifier에 컬럼(필드제목)이 들어간다.

데이터 벡터는 Vector<Object> 형태로 만들어서

그안에 Vector<String> 객체들로 채운다.

 

  1. Vector dataVector = new Vector<Object>(1,1);            
  2.  
  3. //vector 객체는 Employee 라는 사용자 클래스 객체를 담은 벡터이다.
  4.   for(int i = 0 ; i < vector.size() ; i++){
  5.    Employee emp = vector.get(i)// 벡터에서 하나꺼냄.
  6.    Vector<String> temp = new Vector<String>(1,1)//임시 스트링 벡터 생성
  7.    temp.addElement(emp.getEmpno())//데이터들을 하나하나 넣는다.
  8.    temp.addElement(emp.getDname());
  9.    temp.addElement(emp.getGibon() + "");
  10.    temp.addElement(String.valueOf(emp.getHobonus()));
  11.    temp.addElement(String.valueOf(emp.getFamilyBonus()));
  12.    temp.addElement(String.valueOf(emp.getNightBonus()));
  13.    temp.addElement(String.valueOf(emp.getSum()));
  14.    temp.addElement(String.valueOf(emp.getSalary()))//여기까지 하나의 벡터로 묶어서
  15.    dataVector.addElement(temp)//Vector<Object>에 넣어주면 된다.
  16.   }

 

 

컬럼 벡터 만들기

 

  String [] array = {"사원번호", "부서명", "기본급", "호급수당", "가족수당", "야간수당", "총금액", "실수령액"};
  for(String str : array) this.headVector.addElement(str);

 

 컬럼 벡터와 데이터 벡터 합치기

 

setDataVector(Vector datavector, Vector columnIdentifier);

 

setDataVector로 데이터 입력이 끝난 DefaulTableModel은

 

 완성한 테이블모델 JTable에 적용하기 

 

 JTable 의 setModel(TableModel t) 매소드를 이용한다.

 

 

  1. TableModel tm = new MyTableModel(this.vector)// DefaultTableModel을 상속받은 객체이므로
  2.                                                // TableModel로 형변환 할 수 있다.
  3. this.table.setModel(tm);                       // 셋 모델 메소드로 테이블모델을 JTable에 적용한다.