实现模拟登录功能,只有输入用户名为“admin”和密码为“888888”时,显示登录成功,代码如下:
jblogin.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
if(nameField.getText()=="")
JOptionPane.showMessageDialog(null, "用户名不能为空!");
else if (PwdField.getText()=="") {
JOptionPane.showMessageDialog(null, "密码不能为空!");
}
else if (nameField.getText()!="admin") {
JOptionPane.showMessageDialog(null, "用户名错误!");
}
else if (PwdField.getText()!="888888") {
JOptionPane.showMessageDialog(null, "密码错误!");
}
else {
JOptionPane.showMessageDialog(null, "欢迎登陆!");
}
}
});运行时无论输入正确的还是错误的用户名密码,显示的始终是用户名错误,该怎么改?

解决方案 »

  1.   

    使用equals()也不行,依然是用户名错误
      

  2.   

    感觉你写的代码很别扭。为什么不这样写呢?
    IF
    NAME==NULL
    输出:用户名不能为空
    IF
    PWD==NULL
    输出:密码不能为空
    IF
    (NAME=="ADMIN")&&(PWD="8888")
    输出:登录成功!这是伪代码,你可以看一下,希望对你有帮助
      

  3.   


    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class UsernameAndPassword{
        public static void main(String[] args){
            JFrame frame = new JFrame();
            final JLabel label1 = new JLabel("name", SwingConstants.RIGHT);
            final JLabel label2 = new JLabel("password", SwingConstants.RIGHT);
            final JTextField jtf1 = new JTextField(15);
            final JPasswordField jpf2 = new JPasswordField(15);
            //final char[] pw;
            JPanel panel = new JPanel();
            panel.setLayout(new FlowLayout());
            panel.add(label1);
            panel.add(jtf1);
            panel.add(label2);
            panel.add(jpf2); JButton button = new JButton("登录");
            button.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    char[] pw = jpf2.getPassword();
                    String passWord = new String(pw);
                    //if(nameField.getText()=="")
                    if(jtf1.getText().equals("")){
                        JOptionPane.showMessageDialog(null, "用户名不能为空!");
                    }
                    //else if (PwdField.getText()=="") {
                    else if (passWord.equals("")) {
                        JOptionPane.showMessageDialog(null, "密码不能为空!");
                    }
                    //else if (nameField.getText()!="admin") {
                    else if (!jtf1.getText().equals("admin")) {
                        JOptionPane.showMessageDialog(null, "用户名错误!");
                    }
                    //else if (PwdField.getText()!="888888") {
                    else if (!passWord.equals("888888")) {
                        JOptionPane.showMessageDialog(null, "密码错误!");
                    }
                    else {
                        JOptionPane.showMessageDialog(null, "欢迎登陆!");
                    }
                }
            });
    panel.add(button);        frame.getContentPane().add(panel);
            frame.setVisible(true);
            frame.setSize(1000, 100);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }
      

  4.   

    else if (PwdField.getText()!="888888") 
    变为 else if (!(PwdField.getText()).equals("888888")) 加!!!
      

  5.   

    ==比较的是地址值
    .equals比较的才是值。
    如果.equals还不行的话,我猜你就是你根本没有获取到值,或者你获取的到的值是空字符串。
    你System.out.println输出一下看看你获取到的是什么