У меня есть JTable с JComboBoxes в качестве редактора ячеек для одного из столбцов.Когда пользователь щелкает один из параметров в одном из выпадающих списков, ячейка таблицы должна быть мгновенно установлена на любой параметр, выбранный в выпадающем списке.К сожалению, этого не произойдет, пока пользователь не щелкнет в другом месте или не нажмет Enter.
Я понимаю, что могу просто взять значение из выпадающего списка, но я хотел бы сохранить таблицу в файл, как только появится опциявыбрана из любого выпадающего списка в таблице, и я не смог найти способ динамически определить, к какой строке принадлежит выпадающий список, чтобы таблица могла обновляться при изменении элемента.
Есть ли способполучить таблицу для обновления с выбранным значением, как только будет запущен прослушиватель элемента со списком?
Вот пример, демонстрирующий эту проблему:
public static void main(String args[]) {
JFrame frame = new JFrame();
frame.setSize(450, 250);
JTable table = new JTable(2, 1);
TableColumn testColumn = table.getColumnModel().getColumn(0);
JComboBox<String> comboBox = new JComboBox<String>();
comboBox.addItem("Item1");
comboBox.addItem("Item2");
comboBox.addItem("Item3");
testColumn.setCellEditor(new DefaultCellEditor(comboBox));
comboBox.addItemListener(new ItemListener(){
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED){
System.out.println(table.getValueAt(0, 0));
}
}
});
frame.add(table);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}