Действие или кнопка формы Java по умолчанию - PullRequest
1 голос
/ 03 августа 2009

В HTML-формах, если вы нажмете «ввод», находясь в текстовом поле, форма обычно будет отправлена.

Я реализую панель поиска в Java Swing и хочу включить ту же функциональность, которую, я думаю, пользователи ожидают.

Я знаю, что для этого можно использовать setAction в JTextField, однако мне было интересно, есть ли более простой / лучший способ, чем установка действия для каждого поля. Я попытался осмотреться, но, кажется, не существует стандартного решения этой проблемы, которое я могу найти!

Редактировать : есть getRootPane (). SetDefaultButton (...), но кажется, что он устанавливает кнопку по умолчанию для кадра. Это не будет работать для меня, так как я использую панель с вкладками, каждая панель которой имеет форму!

Ответы [ 3 ]

3 голосов
/ 03 августа 2009

Возможно, вам придется прослушать переключатель вкладок и сбросить кнопку по умолчанию для текущей вкладки, используя getRootPane().setDefaultButton(...).

1 голос
/ 03 августа 2009

IIRC, добавление ActionListener в JTextField обеспечит необходимую вам функциональность

Быстрый Google позже ...

Да - и это, кажется, рекомендуемый путь Sun, как показано в следе текстового поля ...

1 голос
/ 03 августа 2009

У нас та же проблема в одном из наших приложений.

Вы можете добавить 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
    }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...