如何在Java JFrame GUI中使用requestFocus?

时间:2011-02-11 02:16:38

标签: java swing user-interface focusmanager

我接受了一项任务,但我完全不熟悉Java(我已经用C ++和Python编程了两年)。

所以我们正在做GUI,基本上我们扩展了JFrame并添加了几个字段。

假设我们有一个名为“Text 1”和“Text 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 个答案:

答案 0 :(得分:3)

嗯,您有textfield1.requestFocus(),但您的描述意味着您需要textfield2.requestFocus()。 (那是 2 )。

答案 1 :(得分:2)

另一种选择可能是使用:

textField1.transferFocus();

这样您就不需要知道表单上下一个组件的名称了。