Я хочу реализовать JTable
, в котором есть один столбец с JComboBox
в качестве редактора. Я хочу, чтобы в моей таблице изначально была только одна строка. После установки значения в ComboBox
я хочу, чтобы моя таблица была заполнена некоторыми значениями в зависимости от выбранного элемента JComboBox
. После выбора непустого элемента я хочу добавить новую строку в таблицу. Когда имеется несколько непустых строк и кто-то устанавливает значение n-го поля со списком пустым, я хочу удалить строку из таблицы.
Простое решение не работает:
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));