본문 바로가기

Progamming/Java

JTable 셀간격, 셀 높이, 셀 글자 정렬 하기



JTable을 사용하면서 각 셀에 원하는 크기로 셀 너비를 조정해야 할 경우가 생긴다.

여러가지 방법이 있으나 setPreferredWidth() 펑션과  <---- 셀 너비 조절

DefaultTableCellRenderer <---- 셀 안에 들어가는 데이터의 정렬을 조절

를 사용하는 가장 간단한 방법을 이용해 보자.




테이블을 생성하는 기본적인 코드 (헤더와, 셀) 배열과 이둘을 파라미터로 한 테이블 생성,

JScrollPane을 이용하여 테이블 완성 이라는 공식을 따라 기본적인 테이블을 작성한다.



이후 원하는 셀의 너비를 조정하고, 글자 정렬을위해 DefaultTableCellRenderer  객체를 이용한다.

DefaultTableCellRenderer celAlignCenter = new DefaultTableCellRenderer();
celAlignCenter.setHorizontalAlignment(JLabel.RIGHT);
위 코드와 같이 DefaultTableCellRenderer  의 객체를 하나 생성하고, 객체의 setHorizontalAlignment() 매소드를 이용하여
해당 셀에 출력될 데이터 정렬을 지정한다. 이때 인자는 JLabel을 이용하되. 저정 변수인 CENTER, RIGHT, LEFT 등을 이용하여 정렬을 지정해 둔다.
이후 이 설정을 적용하기위해 table객체에서 .getColumn() 매소드로 해당 컬럼을 가져온뒤, .setCellRenderer(); 매소드로
정렬을 지정한다. 이때 setCellRenderer(); 매소드의 인자는 위에서 지정해둔 DefaultTableCellRenderer의 객체인다.



table.getColumn("Month").setPreferredWidth(10);
비슷한 방법으로 셀의 너비지정은 table객체의 .getColumn() 매소드로 해당 컬럼을 가져온뒤, .setPreferredWidth 매소드로 너비를  픽셀 단위로 지정하면된다.




예제 코드




위의 예제 코드는 데이터 베이스에서 cell 데이터들을 가져오는 예제로 실제 테스트 시 에는, String[][] 등의 이중 배열에
데이터를 넣어두고 table의 cell 로 사용하면 된다.



결과