我想實現JTable
,該列有一列,編號爲JComboBox
。我希望我的桌子最初只有一排。在設置ComboBox
中的值後,我希望我的表格根據所選元素JComboBox
填充一些值。選擇非空元素後,我想向表中添加新行。當有多行不爲空並且某人將第n個組合框的值設置爲空時,我想從表中刪除該行。使用JComboBox作爲編輯器的JTable - 刪除當前行
簡單的解決方案不起作用:
TableColumn column = table.getColumnModel().getColumn(2);
JComboBox comboBox = new JComboBox();
comboBox.addItem("");
comboBox.addItem("1");
comboBox.addItem("2");
comboBox.addItem("3");
comboBox.addItem("4");
comboBox.addItem("5");
comboBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
JComboBox combo = (JComboBox)e.getSource();
if (combo.getSelectedItem() != null) {
if (combo.getSelectedItem().equals("")) {
table.getTableModel().removeRow(table.getSelectedRow());
} else {
table.getTableModel().addRow(new Object[] {null, null, null, null});
}
}
}
});
column.setCellEditor(new DefaultCellEditor(comboBox));
你需要重寫setValueAt在XxxTableModel,而不是由聽的ItemListener,那麼就沒有任何問題與.... – mKorbel