2017-09-04 10 views
0

먼저 내가 만든 JSplitPane의 : 기본 모델JTable가 나던 쇼

JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT ,new JScrollPane(textArea), new JScrollPane(table)); 
add(splitPane);//added to frame 

그때가 만든 테이블 : 내가 콜럼 배열로이 값을 설정

DefaultTableModel model = new DefaultTableModel(columns, 0); 
JTable table = new JTable(model); 

하는 : A B C D E F P1 P2 R1 R2 R3 S1 S2.

문제 때 I 이상이 코드 데이터를 추가하려고 (액션 리스너)에 일부 동작 후 :

3.0 2.0 5.0 4.0 6.0 1.0 4.0 1.0 -4.0 -30.0 5.0 -1.0 -6.0 
6.0 1.0 3.0 2.0 5.0 4.0 0.5 -5.5 0.75 -38.5 7.0 1.5 -5.5 

텍스트 영역 쇼 : 부분 (배열로)이다

model.addRow(parts); 

정확하게는 표가 없습니다.

제가 잘못하고있는 것을 알고 있습니다. 나는이 튜토리얼을 따라 왔습니다. https://docs.oracle.com/javase/tutorial/uiswing/components/table.html 하지만 도움이되지 않습니다.

P. splitPane 초기화 직후 table = new JTable(10,10)으로 설정하면 일반적으로 분할 창에 표시됩니다.

답변

1

테이블 변수는 분할 창에 추가 할 때 null입니다. 따라서 분할 된 창에 구성 요소가 추가되지 않았습니다.

나중에 JTable의 인스턴스를 만들 수 없습니다. 물론 "table"변수에는 JTable에 대한 참조가 포함될 수 있지만 실제로는 분할 창에 테이블을 추가하지 않았습니다.

JTable을 만든 후에 만 ​​분할 창에 테이블을 추가 할 수 있습니다. 당신이 사용할 수있는 나중에 코드에서 다음

table = new JTable(column, 0); 
JSplitPane splitPane = new JSplitPane(... , new JScrollPane(textArea), new JScrollPane(table)); 

:

DefaultTableModel model = (DefaultTableModel)table.getModel(); 
model.addRow(...); 

그래서 코드는 뭔가를해야합니다