我正在尋找一個previous question的答案,並有一個巧妙的想法來克服JTable
的限制。我需要編輯器在逐行基礎上有所不同,而JTable
只能爲每列處理單個編輯器。刷新setCellEditor for JTable
所以我的想法是使用MouseListener
來檢查JTable
上的行和列,並且每次都設置新的編輯器。
但是,第二次打電話setCellEditor()
沒有任何影響。編輯仍然是第一個被設定的人。那麼我怎麼才能讓「setCellEditor」再次爲同一列工作?
以下是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));
}
是的。這是如何處理單個列的多種編輯器類型。 – 2009-01-19 17:12:01