我写了一个程序,意思是登陆窗口,登陆者为“admin”且密码为“123456”时登陆成功,否则不成功,点击“退出”则关闭窗口。那么问题来了,我用了 JPasswordField t2 = new JPasswordField(10);
t2.setEchoChar('*');显示的还是实际密码“123456”而不是“******”,为什么?
代码如下:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class bar2_exr extends JFrame {
Container con ;
JLabel lb1,lb2;
JTextField t1;
JPasswordField t2;
JButton A,B;
// String psw;
public bar2_exr(){
this.setTitle("欢迎使用图书馆管理系统 ");///设置标题
con = this.getContentPane();//获得内容窗格
con.setLayout(new FlowLayout());//设置布局
lb1 = new JLabel("输入用户名: ");//标签内容
lb2 = new JLabel(" 输入密码: ");
t1 = new JTextField(10);//文本内容
t2 = new JPasswordField(10);
t2.setEchoChar('*');
con.add(lb1);
con.add(t1);
con.add(lb2);
con.add(t2);
t2.addActionListener(new ActionLis());
JPanel J = new JPanel(); //按钮功能
A = new JButton("登录");
A.addActionListener(new ActionLis());
B = new JButton("退出");
B.addActionListener(new ActionLis());
J.add(A);
J.add(B);
con.add(J,BorderLayout.SOUTH);
this.setVisible(true);
this.setSize(600,450);
}
class ActionLis implements ActionListener{
//@SuppressWarnings("unlikely-arg-type")
public void actionPerformed(ActionEvent e){
if(e.getSource() == A){
//psw=new String(t2.getPassword());
if(t1.getText().equals("admin")){
if(t2.getPassword().equals("123456") )
System.out.println("登陆成功");
else//(!psw.equals("123456"))
System.out.println("登陆不成功");
}
}
else//(e.getSource() == B)
System.exit(0);
}
}
static void main(String[] args) {
// TODO Auto-generated method stub
new bar2_exr();
}
}
请问,为什么呢?哪位大神能帮帮我?非常感谢你的帮助!!!