清除按钮按下时的文本字段-Java小程序
我有一个用于登录表单的Java小程序。它有两个清除按钮按下时的文本字段-Java小程序,java,applet,Java,Applet,我有一个用于登录表单的Java小程序。它有两个文本字段、用户名和密码。我需要在单击Reset按钮时清除它们。这是我写的代码 public class LoginForm extends Applet implements ActionListener { TextField name, pass, hidden; Button b1, b2; public void init() { name = new TextField(20);
文本字段
、用户名和密码。我需要在单击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(" ");
然后它就起作用了。但我不想在那里有空位。我希望文本字段为空
非常感谢您的帮助。这可能不是一个好的解决方案,但这是一个解决方法。在设置文本调用
getText
方法之前,它将重置。真奇怪!此行为被标记为此服务器上的错误
另一个解决方案是将文本设置为空格。但如果您有类似密码的字段,这些字段具有setEchoChar('*')
,则不会
只需在文本字段中输入空白
public void actionPerformed(ActionEvent e) {
name.getText();
pass.getText();
name.setText("");
pass.setText("");
repaint();
revalidate();
}
停止使用小程序。浏览器已经停止支持它们很多年了当然,我知道。这是学校的作业,请把老师交给我。注意:我是在2013年写这篇博客的,在Oracle最终决定弃用并删除用于启动小程序的整个Java插件之前。另外,为什么要使用AWT?有关放弃AWT组件而支持Swing的许多好理由,请参阅。Swing在小程序出现问题之前很久就取代了AWT。@AndrewThompson感谢您的评论。事实上,我是老师。我很清楚小程序已经成为历史。但不幸的是,我没有设定教学大纲,伙计(好吧,这完全出乎意料!不过它是有效的。如果你能告诉我这种行为的原因,我会接受答案。不能这样做,
pass.setText(“”;
),因为如果我有pass.setEchoChar(“*”),密码字段中会显示一个*
)
on.。在本页上它被标记为BUG。请检查它。我无法告诉您原因是什么。我认为您应该在答案中包含BUG链接。@linuxartisan我有。这与上一个答案完全相同。
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();
}