日期:2014-05-20  浏览次数:20811 次

J2SE新手求教!!!!!
实现模拟登录功能,只有输入用户名为“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, "欢迎登陆!");
}
}
});

运行时无论输入正确的还是错误的用户名密码,显示的始终是用户名错误,该怎么改?

------解决方案--------------------
字符串比较要用equals()。
------解决方案--------------------
断点debug一下吧。。
------解决方案--------------------
感觉你写的代码很别扭。为什么不这样写呢?
IF
NAME==NULL
输出:用户名不能为空
IF
PWD==NULL
输出:密码不能为空
IF
(NAME=="ADMIN")&&(PWD="8888")
输出:登录成功!

这是伪代码,你可以看一下,希望对你有帮助
------解决方案--------------------

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, "用户名不能为空!");