Получить правильное поведение редактирования в JTable, используя java DefaultCellEditor - PullRequest
3 голосов
/ 20 октября 2010

Вы можете войти в ячейку в Jtable, щелкнув по ней или войдя в нее с помощью клавиш курсора / вкладок. При использовании defaultCellEditor и JtextField, если вы используете клавиши курсора, курсор вставляется в конец существующего текстового поля, тогда как при двойном щелчке по полю будет выделено последнее слово.

Принимая во внимание, что электронные таблицы (например, Open Office Calc) работают одинаково для двойного щелчка, но если вы вкладываете в поле и начинаете редактировать, поле очищается, и первый нажатый символ становится первым значением в поле и так далее.

Я хочу, чтобы мое приложение работало так же, как и электронная таблица. Подклассом DefaultCellEditor и добавлением

final Caret caret = editField.getCaret();
    caret.setDot(0);
    editField.setText("");

Я могу заставить его работать так, как я хочу, когда вкладки, но он также очищает поле при двойном щелчке, который я не хочу.

Так, пожалуйста, как я могу определить, было ли редактирование ячейки выполнено с клавиатуры или мыши?

1 Ответ

3 голосов
/ 20 октября 2010

также переопределяет метод isCellEditable (EventObject anEvent).

Чтобы вы могли захватить событие, которое будет вызывать (или не вызывать) редакцию таблицы, и действовать так, как вы хотите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...