Действие или кнопка формы Java по умолчанию
-
10-07-2019 - |
Вопрос
В HTML-формах, если вы нажмете «ввод», находясь в текстовом поле, форма будет отправлена.
Я реализую панель поиска в Java Swing и хочу включить ту же функциональность, которую, я думаю, пользователи ожидают.
Я знаю, что для этого можно использовать setAction в JTextField, однако мне было интересно, есть ли более простой / лучший способ, чем установка действия для каждого поля. Я попытался осмотреться, но, похоже, стандартного решения этой проблемы я не нашел!
Изменить : есть метод getRootPane (). setDefaultButton (...), но, похоже, он устанавливает кнопку по умолчанию для рамки. Это не будет работать для меня, так как я использую панель с вкладками, каждая панель которой имеет форму!
Решение
IIRC, добавление ActionListener в JTextField предоставит вам необходимую функциональность
Быстрый Google позже ...
Да, и, похоже, это рекомендуемый Sun способ, как показано в след текстового поля ...
Другие советы
Возможно, вам придется прослушать переключение вкладок и сбросить кнопку по умолчанию для текущей вкладки, используя getRootPane (). setDefaultButton (...)
.
У нас такая же проблема в одном из наших приложений.
Вы можете добавить Key Listener в редактор JTextField:
txtField.getEditor().getEditorComponent().addKeyListener(new java.awt.event.KeyAdapter()
{
@Override
public void keyTyped(final KeyEvent e)
{
super.keyTyped(e);
// Check if the user pressed Enter
if (e.getKeyChar() == '\n')
{
// Action here/button press here
}
}
});