代码错在哪了,为什么两个Button都不起作用

public class User extends Frame implements ActionListener{
Label name=new Label("用户名:");
Label paseword=new Label("密 码:");
TextField nameTextField=new TextField(10);
TextField pasewordTextField=new TextField(10);
Button submit=new Button("提交");
Button reset=new Button("重置");
User(){
pasewordTextField.setEchoChar('*');
Panel panel1=new Panel();
Panel panel2=new Panel();
Panel panel3=new Panel();

     panel1.add(name);
     panel1.add(nameTextField);

     panel2.add(paseword);
     panel2.add(pasewordTextField);

     panel3.add(submit);
     panel3.add(reset);

     nameTextField.addActionListener(this);
     pasewordTextField.addActionListener(this);
     submit.addActionListener(this);
     reset.addActionListener(this);

     add(panel1,"North");
     add(panel2,"Center");
     add(panel3,"South");

 }
public void actionPerformed(ActionEvent e) {
    if(e.getSource() instanceof TextField){
        Object object=e.getSource();
        if(object==nameTextField){
            pasewordTextField.requestFocus();}
        if(object==pasewordTextField){
            nameTextField.requestFocus();}
        }
    if(e.getSource() instanceof Button)
    {
        if(e.getActionCommand().equals("提交")){
            nameTextField.setText("");           
            pasewordTextField.setText("");}
        if(e.getActionCommand().equals("重置")){
            nameTextField.setText("");
            pasewordTextField.setText("");}
    }
}
public static void main(String[] args) {
    User user=new User();
    user.setVisible(true);
    user.setSize(250,200);
}

}

3个回答

调试了下你的代码,按钮的响应事件是正确进入了,问题是处理时设置文本域的setText方法没有起效,我在你设置完成“”空串后再getText取到的仍然是先前的值。
所以,真正的问题是TextField的setText失效了。

hyt941026
hyt_ao 那应该怎么做呢
接近 4 年之前 回复

额,我怎么运行没有问题。。。。
import java.awt.*;
import java.awt.event.*;

if(e.getSource() instanceof Button)
45 {
46 System.out.println(e.getActionCommand());
47 if(e.getActionCommand().equals("提交")){
48 nameTextField.setText("");
49 pasewordTextField.setText("");}
50 if(e.getActionCommand().equals("重置")){
51 nameTextField.setText("");
52 pasewordTextField.setText("");}
53 }

除了上面的,什么都没改

补充说明:进一步测试,点击按钮后的setText为空的操作在下次点击按钮时才会生效。
为什么setText不能立即生效呢?这个我也没找到原因。祝好!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!