为了账号安全,请及时绑定邮箱和手机立即绑定

按下按钮时清除 TextField - Java Applet

按下按钮时清除 TextField - Java Applet

交互式爱情 2023-10-12 17:08:14
我有一个用于登录表单的 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();

}


查看完整回答
反对 回复 2023-10-12
?
翻阅古今

TA贡献1780条经验 获得超5个赞

只需在文本字段中输入空白即可。


public void actionPerformed(ActionEvent e) {

    name.getText();

    pass.getText();

    name.setText("");

    pass.setText("");

    repaint();

    revalidate();

}


查看完整回答
反对 回复 2023-10-12
  • 2 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信