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);
}
}
调试了下你的代码,按钮的响应事件是正确进入了,问题是处理时设置文本域的setText方法没有起效,我在你设置完成“”空串后再getText取到的仍然是先前的值。
所以,真正的问题是TextField的setText失效了。
额,我怎么运行没有问题。。。。
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不能立即生效呢?这个我也没找到原因。祝好!