1

アプリケーションで JTable の AbstractTableModel を作成しました。チュートリアルから、列モデルを取得してから特定の列を取得することで、列にコンボボックスを持たせることができることがわかります。

TableColumn sportColumn = table.getColumnModel().getColumn(2);
...
JComboBox comboBox = new JComboBox();
comboBox.addItem("Snowboarding");
comboBox.addItem("Rowing");
comboBox.addItem("Chasing toddlers");
comboBox.addItem("Speed reading");
comboBox.addItem("Teaching high school");
comboBox.addItem("None");
sportColumn.setCellEditor(new DefaultCellEditor(comboBox));

しかし、特定のセルまたは行に対してこれを行うにはどうすればよいでしょうか?

4

2 に答える 2

3

JTable のデフォルトの実装は列ベースです。行ベースまたは単一セルベースの選択肢が必要な場合、その動作を変更する唯一の方法はJTable、メソッドのサブクラスを作成してオーバーライドすることpublic TableCellEditor getCellEditor(int row, int column)です。実装内では、提供された行と列のインデックスを使用して別の選択を行うことができます。JTable は常にこのメソッドを使用して、セル エディターを取得します。

于 2013-09-11T08:38:50.883 に答える