0

ComboBoxes を使用して JTable の特定の列のセルの内容を編集しようとしています。したがって、JTables の公式 Java チュートリアル (http://download.oracle.com/javase/tutorial/uiswing/components/table.html) のコードを使用するだけです。関連するコードは次のようになります。

tableModel = new NetworkTableModel(columnNames,0,0);
networkTable = new JTable(tableModel);
....
TableColumn sendingColumn = networkTable.getColumnModel().getColumn(3);  
JComboBox sendingBox = new JComboBox();
sendingBox.addItem("Sending");
sendingBox.addItem("Receiving");
sendingColumn.setCellEditor(new DefaultCellEditor(sendingBox));

問題は、その列のセルをクリックすると ComboBox が表示されないことです。セルを完全に編集できますが、セルに入力するだけです。ComboBox が表示されないのはなぜですか?

4

1 に答える 1

0

問題が解決しました。

私は経験が浅いので、基になるデータが変更されたときは常に、テーブルの完全な新しいテーブル モデルを設定していました (より正確には、テーブル内の行を表すオブジェクトの数)。そのため、作成したテーブル モデルの最初のインスタンス以外ではコンボ ボックスが表示されませんでした。これは、このインスタンスで setCellEditor メソッドのみを呼び出したためです。常に新しいテーブル モデルを作成しないようにプログラムを変更したところ、すべてが正常に機能するようになりました....何かを学びました。

于 2010-10-31T11:48:13.653 に答える