powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / есть несколько JTextField. Как по Enter перейти на следующее
5 сообщений из 5, страница 1 из 1
есть несколько JTextField. Как по Enter перейти на следующее
    #34330138
Ekaterina Boykova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем! Всех с праздником
Есть два поля JTextField - imya и familiya. Как по Enter перейти с поля imya на familiya?

Код: plaintext
familiya.addKeyListener( new  ActionField());
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  private   class  ActionField  implements  KeyListener {
             public   void  keyTyped(KeyEvent e) {}
             public   void  keyPressed(KeyEvent e) {
                 if  (e.getKeyCode() ==  10 ) {
                      ??????
                }
            }
             public   void  keyReleased(KeyEvent e) {}
    }
...
Рейтинг: 0 / 0
есть несколько JTextField. Как по Enter перейти на следующее
    #34330497
carper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может как-то так?
InputMap im = textField.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
KeyStroke tab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0);
KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
im.put(enter, im.get(tab))
...
Рейтинг: 0 / 0
есть несколько JTextField. Как по Enter перейти на следующее
    #34330704
Ekaterina Boykova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за ответ, но я нашла вариант полегче))
Код: plaintext
1.
2.
3.
4.
 public   void  keyPressed(KeyEvent e) {
      if  (e.getKeyCode() ==  10 ) {
          imya.requestFocusInWindow();
     }
}
...
Рейтинг: 0 / 0
есть несколько JTextField. Как по Enter перейти на следующее
    #34331282
ddddiiiiimmmmaaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html
...
Рейтинг: 0 / 0
есть несколько JTextField. Как по Enter перейти на следующее
    #34331307
carper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ekaterina Boykovaспасибо за ответ, но я нашла вариант полегче))
Код: plaintext
1.
2.
3.
4.
 public   void  keyPressed(KeyEvent e) {
      if  (e.getKeyCode() ==  10 ) {
          imya.requestFocusInWindow();
     }
}


Годится, но так так делать не стоит - лучше иметь стандартный вариант, тогда вопрос очередности полей решается отдельно (ну там, либо в нужном порядке добавляем компоненты, используем JComponent.setNextFocusableComponent(Component c); либо свой FocusManager, наследуем class MyFocusTraversalPolicy extends FocusTraversalPolicy, а в контейнере пишем что-то типа setFocusTraversalPolicy(new MyFocusTraversalPolicy())), а поведение Enter как Tab отдельно (обычно в классе-наследнике, думаю, что вам в нем заодно захочется сделать нормальную реакцию на Ctrl+Insert и Shift+Insert и т.п.)

Например, тогда не будет проблем с переименованием поля или с тем, что вот теперь бы хорошо также перейти от поля imya на кнопку OK, а если поля имя недоступно для редактирования, то надо бы перейти на совсем другое поле и т.п.

Можно, конечно, для каждого компонента обрабатывать keyPressed, но не стоит. :)


P.S.
Да, и код цифрой описывать не кошерно, разве, что найдете, где SUN вам гарантирует, что для Enter код всегда останется равным 10. (ср. KeyEvent.VK_ENTER)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / есть несколько JTextField. Как по Enter перейти на следующее
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]