我接受了一项任务,但我完全不熟悉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行...
答案 0 :(得分:3)
嗯,您有textfield1.requestFocus()
,但您的描述意味着您需要textfield2.requestFocus()
。 (那是 2 )。
答案 1 :(得分:2)
另一种选择可能是使用:
textField1.transferFocus();
这样您就不需要知道表单上下一个组件的名称了。