按下按钮时清除 TextField - Java Applet

我有一个用于登录表单的 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(" ");


然后就可以了。但我不想要那里有空格。我希望文本字段变为空白。


任何帮助表示赞赏。


交互式爱情
浏览 90回答 2
2回答

四季花海

也许这不是一个好的解决方案,但这是一个解决方法。在设置文本调用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();}

翻阅古今

只需在文本字段中输入空白即可。public void actionPerformed(ActionEvent e) {    name.getText();    pass.getText();    name.setText("");    pass.setText("");    repaint();    revalidate();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java