我有一个用于登录表单的 Java Applet。它有2 TextFields,用户名和密码。我需要点击Reset按钮清除它们。这是我写的代码。 public class LoginForm extends Applet implements ActionListener { TextField name, pass, hidden; Button b1, b2; public void init() { name = new TextField(20); pass = new TextField(20); b2 = new Button("Reset"); add(name); add(pass); add(b2); b2.addActionListener(this); } public void paint(Graphics g) { g.drawString("Hello", 10, 150); } public void actionPerformed(ActionEvent e) { System.out.println(e); name.setText(""); pass.setText(""); repaint(); } }但这不能正常工作。一旦我单击Reset按钮,该actionPerformed()方法就会被调用,并且它还会调用repaint(). (我可以看到显示“Hello”)。但文本字段不会被清除。如果我进行以下更改actionPerformed name.setText(" "); // please note the spaces pass.setText(" ");然后就可以了。但我不想要那里有空格。我希望文本字段变为空白。任何帮助表示赞赏。
2 回答
四季花海
TA贡献1811条经验 获得超5个赞
也许这不是一个好的解决方案,但这是一个解决方法。在设置文本调用getText
方法之前,它将重置。很奇怪!
public void actionPerformed(ActionEvent e) {
System.out.println(e);
name.getText();
pass.getText();
name.setText("");
pass.setText("");
repaint();
revalidate();
}
另一个解决方案是设置带有空格的文本。但如果您有类似于密码的字段,其中包含setEchoChar('*').
public void actionPerformed(ActionEvent e) {
System.out.println(e);
name.setText(" ");
pass.setText(" ");
repaint();
revalidate();
}
翻阅古今
TA贡献1780条经验 获得超5个赞
只需在文本字段中输入空白即可。
public void actionPerformed(ActionEvent e) {
name.getText();
pass.getText();
name.setText("");
pass.setText("");
repaint();
revalidate();
}
添加回答
举报
0/150
提交
取消