본문 바로가기

[JAVA][SWING]JTable Row Header Example


위 이미지와 같은 이쁜놈을 만들고 싶었다


JTable 로는 왼편 1 ~ 를 만들어주는 방법을 몰랐다.


그래서 찾아본 검색 결과



출처 : http://www.java2s.com/Code/Java/Swing-Components/TableRowHeaderExample.htm


출력 결과는 



위 이미지에서 보다싶이 왼편에 숫자대신 a b c d 찍어주긴 하지만 라인이 딱딱 맞아 떨어지지 않음을 확인할 수 있다

즉 ... 죄송하지만 어설퍼 보인다는것 대중성을 고려한다면 ... X



조금더 조회해보니 



위 이미지와 같은 결과가 나오는 소스가 있었으니


출처는 : https://tips4java.wordpress.com/2008/11/18/row-number-table/


하지만 소스는


RowNumberTable.java



위와 같이 달랑 public class RowNumberTable extends JTable


JTable 을 상속 받은놈이 전부였다.


You can use the RowNumberTable in your program with code like the following…

다음과 같은 코드를 사용하여 프로그램에서 RowNumberTable을 사용할 수 있습니다.


1
2
3
4
5
6
JTable mainTable = new JTable(...);
JScrollPane scrollPane = new JScrollPane(mainTable);
JTable rowTable = new RowNumberTable(mainTable);
scrollPane.setRowHeaderView(rowTable);
scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER,
    rowTable.getTableHeader());
cs


which will generate a table looking something like…

테이블을 생성합니다.


구글 번역기 돌리니 저런식으로 어케 어케 쓰라는데


지금 보니 소스가 보이긴하는데 


당시엔 뭔소린지 당췌 몰라서 1시간가량 삽질하다가 소스를 첨부한다


RowNumberTable.java 과는 별개로 class 를 하나더 만들었다


RowHeaderExample.java



뭐 ... 불필요한 소스도 있고 해서 정리가 필요하다


가장 큰 문제는 문제는 


https://docs.oracle.com/javase/7/docs/api/javax/swing/table/DefaultTableModel.html

여기도 나와있듯이 


아 18 나는 data 만 넘겨주고 싶은데

인자로 해더도 받아쳐먹고 있다

걍 count 만 넘기면 안이런다

아주 깔끔하게 엑셀마냥 A, B, C ... 찍어준다

아 근데 왜 data 를 넣어주면 안찍어주냐고!

해서 ...

하나 만들어야 할듯 하다


어쩨꺼나 이건 다음 숙제 ~