Вопрос

В 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
    }
  }
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top