私は前の質問に対する答えを探して いて、の制限を克服するための独創的なアイデアを持っていましたJTable。エディターは行ごとに異なる必要がありますが、列ごとにJTable1つのエディターしか処理できません。
したがって、私の考えは、を使用しMouseListenerての行と列をチェックし、JTable毎回新しいエディタを設定することです。
ただし、2回目の呼び出しsetCellEditor()は効果がありません。エディターは、最初に設定されたもののままです。では、どうすれば「setCellEditor」を同じ列で2回動作させることができますか?
これがのコードですMouseListener。
public void mouseClicked(MouseEvent e) {
int cols = resultTable.columnAtPoint(new Point(e.getX(), e.getY()));
int rows = resultTable.rowAtPoint(new Point(e.getX(), e.getY()));
StorageObject item = (StorageObject) resultTable.getModel().getValueAt(rows, cols);
TableColumn col = resultTable.getColumnModel().getColumn(cols);
col.setCellEditor(new MyComboBoxEditor(item.list));
}