2017-09-04 8 views
0

まず、私が作成しているJSplitPaneの:デフォルトモデルとJTableのdoesntのショー

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

その後、私が作成した表:私はcolum配列としてこれらの値を設定

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、後で(アクションリスナーに)いくつかのアクションの後に、このコードとデータを追加しようとすると問題がある:

部品(配列として)である
model.addRow(parts); 

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 

テキストエリアショー正しくはテーブルはありません。

私が間違っていることを知りません。私はこのチュートリアルに従いましたhttps://docs.oracle.com/javase/tutorial/uiswing/components/table.html しかし、それは助けになりません。

P.S. 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(...);