Ctrl-Delete в JTextField
-
16-09-2019 - |
Вопрос
Как я могу заставить JTextFields разрешить Ctrl-Удалить и Ctrl-Backspace при редактировании текста?
В других программах эти комбинации клавиш могут удалить целое слово за один раз.
Насколько я могу судить, поведение JTextField по умолчанию позволяет пользователю использовать CTRL для перехода через целое слово при использовании клавиш «влево» и «вправо» и для выбора всего слова при использовании СДВИГ тоже используется.Однако удаление просто не работает.
Решение
Swing использует привязки клавиш для сопоставления действий с компонентами.Чтобы узнать сопоставления по умолчанию для данного компонента, вы можете использовать Ключевые привязки программа.Статья также содержит ссылку на учебное пособие по Swing, в котором есть раздел «Как использовать привязки клавиш».
Чтобы создать свое собственное действие, вы должны расширить TextAction, чтобы у вас был доступ к текстовому компоненту.Затем вам нужно будет получить текущую позицию каретки.Затем вы можете использовать класс Utilities, чтобы получить начало или конец текущего слова, а затем удалить символы из документа.
Другие советы
Вам необходимо определить действие и поместить его в карту действий композита.Видеть Эта статья для знакомства.