У меня JTable, содержащий редакторы JComboBox, инициализированные примерно как
JComboBox comboBox = ...;
TableColumn tc = table.getColumnModel().getColumn(i);
tc.setCellEditor(new DefaultCellEditor(comboBox));
В остальном это работает нормально, но я бы хотел иметь возможность перемещаться по таблице и обновлять значения только с клавиатуры. Теперь это возможно с полями со списком, но если я хочу обновить значение «1», я должен сначала нажать клавишу, чтобы активировать поле со списком, а затем нажмите «1», чтобы выбрать элемент.
Итак, я хочу, чтобы я мог нажать «1», и элемент был бы выбран только одним нажатием клавиши.
Для текстовых ячеек мне удалось сделать это с prepareEditor, как показано ниже ...
@Override
public Component prepareEditor(TableCellEditor editor, int row, int column) {
Component c = super.prepareEditor(editor, row, column);
if (c instanceof JTextComponent) {
((JTextComponent) c).selectAll();
}
return c;
}
... но мне не удалось понять, что делать со списком.
Одной из возможностей может быть собственный TableCellEditor, но если есть более простое решение, которое было бы неплохо =)
ш,
Ток