Как мне использовать requestFocus в графическом интерфейсе Java JFrame? - PullRequest
0 голосов
/ 11 февраля 2011

Мне дано задание, но я новичок в Java (я программирую на C ++ и Python уже два года).

Итак, мы делаем GUI, и в основном мы расширили JFrame и добавили пару полей.

Скажем, у нас есть поле с именем "Текст 1" и "Текст 2". Когда пользователь нажимает ввод с курсором в тексте 1, переместите фокус на текст 2. Я попытался добавить

private JTextField textfield1() {

    textfield1 = new JTextField();
    textfield1.setPreferredSize(new Dimension(200, 20));

    textfield1.addActionListener(
                           new ActionListener() {
                        public void actionPerformed(ActionEvent e) {

                            textfield1text = textfield1.getText().trim();
                            textfield1.setText(textfield1text);
                            System.out.println(textfield1text);

                            textfield1.requestFocus();
                        }
                    });

    return textfield1;
}

Но это совсем не работает.

Я заметил, что requestFocus не рекомендуется, и вместо этого следует использовать requestFocusWindows. Но я тоже это попробовал. После некоторых чтений мне кажется, что я должен выполнять действия клавиатуры и слушателя? Но мой учитель сказал, что требуется только 1 строка ...

Ответы [ 2 ]

3 голосов
/ 11 февраля 2011

Ну, у вас есть textfield1.requestFocus(), но ваше описание подразумевает, что вам нужно textfield2.requestFocus().(это 2 ).

2 голосов
/ 11 февраля 2011

Другой вариант - использовать:

textField1.transferFocus();

Таким образом, вам не нужно знать имя следующего компонента в форме.

...