1. JTable 생성
자바로 GUI 프로그램을 생성해보자.
우선 Swing 패키지가 필요하다. Swing은 GUI 프로그래밍에 필요한 각종 킷을 모아놓은 것으로 GUI의 기능들을 구현할 수 있다.
그리고 기본 윈도우 창이 될 Jframe이 필요하다. Jfram 위에 라벨, 버튼 등을 올려서 사용할 것이다.
그러면 JTable을 생성해보자. 테이블을 만들기 위해 테이블 열과 테이블 데이터가 필요하다. 테이블 열은 1차원 배열로, 테이블 데이터를 2차원 데이터로 생성하고 JTable 생성자에 넣어주면 된다.
그리고 JScrollPane이 필요하다. JScrollPane은 자신 위에 올려진 UI들이 칸이 부족하면 위 아래로 스크롤을 제공하여 보여준다. 스크롤 기능을 사용해서 안보이는 데이터는 스크롤을 통해 보여지도록 해주기 위해 사용한다.
그러면 JScrollPane 생성자에 table을 생성자로 넣어주면 된다.
그리고 2개의 메소드가 필요하다. 우선 pack() 메소드는 JFrame의 내용물에 알맞게 윈도우 크기를 조절한다. pack() 메소드를 빼고 실행하면 아래처럼 윈도우 크기가 설정한대로 나오지 않는다.
그다음 setVisible 메소드는 창을 띄워 줄지말지를 결정한다. false로 주고 실행하신다면 윈도우 창이 뜨지 않는다.
그러면 전체 코드 확인!
import javax.swing.*; // GUI 화면을 위해 swing 패키지 가져오기
import java.awt.*; // 글씨의 폰트를 위해 awt 가져오기
class table {
public static void main(String args[]) {
Dimension dim = new Dimension(400, 150);
JFrame frame = new JFrame("AnalyzSystem"); // 창 타이틀
frame.setLocation(200, 400); // 창 위치 설정
frame.setPreferredSize(dim); // 창 크기 설정
String header[] = {"현황자료", "입력값", "오차범위"}; // 테이블 헤더
String contents[][] = { // 테이블 내용
{"수강료", "120000", ""},
{"수강인원", "80","10%"},
{"수용가능인원", "150", ""},
{"평균출석일", "20", ""}
};
JTable table = new JTable(contents, header); //// JTable 객체 생성
JScrollPane scrollpane = new JScrollPane(table); // JSCrollPane:UI들이 칸이 부족하면 위아래로 스크롤 제공함
frame.add(scrollpane);
frame.pack();
frame.setVisible(true);
}
}
2. 테이블 데이터
JTable 에 담겨 있는 데이터를 가져와서 활용하거나 변경하는 방법을 알아보자.
- getValueAt("세로인덱스, 가로인덱스") : 원하는 위치의 데이터를 가져오는 메소드
- setAblueAt(바꿀 데이터, 세로인덱스, 가로인덱스) : 원하는 위치의 데이터를 변경해주는 메소드
아래와 같이 코드를 입력하면
setValue로 인해 수강인원의 입력값이 100으로 바뀌고
getValue로 인해 콘솔창에 수강인원의 입력값 100이 출력되는걸 확인할 수 있다.
참조