Java 试图建立一个登录页面,我卡住了![爪哇]

Java 试图建立一个登录页面,我卡住了![爪哇],java,swing,authentication,passwords,Java,Swing,Authentication,Passwords,这是我的代码,我想做的是,当按下登录按钮时,我希望它检查密码和文本字段,以获得正确的密码(在if语句中找到)。我需要关于如何从文本和密码字段获取输入的帮助。当我运行代码时,它会直接跳转到else语句并执行其中的代码,我希望它执行if语句,因为我输入了正确的用户名和密码。我试图找出如何从文本字段中获取输入,但我不知道如何。谢谢你的帮助 import java.awt.BorderLayout; import java.awt.Color; import java.awt.G

这是我的代码,我想做的是,当按下登录按钮时,我希望它检查密码和文本字段,以获得正确的密码(在if语句中找到)。我需要关于如何从文本和密码字段获取输入的帮助。当我运行代码时,它会直接跳转到else语句并执行其中的代码,我希望它执行if语句,因为我输入了正确的用户名和密码。我试图找出如何从文本字段中获取输入,但我不知道如何。谢谢你的帮助

    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.GridLayout;
    import java.awt.TextArea;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseListener;

    import javax.swing.BorderFactory;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;

    public class GUI_2 implements ActionListener {

        private JLabel PassLabel;
        private JFrame frame;
        private JButton enterButton;
        private JLabel UserLabel;
        private JLabel label;
        private JPanel panel;
        private JFrame Incorrect;
        private JTextField password;
        private JTextField username;
        private String rightPassword;
        private String rightUsername;
        private String passwordInput;
        private String usernameInput;
        private JButton UsernameEnter;
        private JButton PasswordEnter;
        private final static String newline = "\n";
        private TextArea textArea;


        public GUI_2()
        {
            PassLabel = new JLabel("Enter Password:");
            password = new JPasswordField(11);
            UserLabel = new JLabel("Enter Username:");
            username = new JTextField(11);
            enterButton = new JButton("Login");
            label = new JLabel("Access");
            UsernameEnter = new JButton("Enter");
            PasswordEnter = new JButton("Enter");
            frame = new JFrame();
            panel = new JPanel();
            Incorrect = new JFrame();
            enterButton.addActionListener(this);
    
            panel.setBorder(BorderFactory.createEmptyBorder(200,200,60,300));
            panel.setLayout(new GridLayout(5, 5));
            panel.add(UserLabel);
            panel.add(username);
            panel.add(PassLabel);
            panel.add(password);
            panel.add(label);
            panel.add(enterButton);
    
            frame.add(panel, BorderLayout.CENTER);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setTitle("Password Login");
            frame.pack();
            frame.setVisible(true);
    
    
        }


        public static void main(String[] args) {
            new GUI_2();
            // TODO Auto-generated method stub

        }






    public void actionPerformed(ActionEvent arg0)
    {
    
    
        if (passwordInput == "password" && usernameInput == "harry")
        {
            frame.setTitle("Success");
            label.setForeground(Color.green);
            label.setText("Access granted");
        }
        else
        {
            frame.setTitle("Access Denied");
            label.setForeground(Color.red);
            label.setText("Access Denied");
        }
    }
    }

1:您可以使用以下命令获取输入密码:
password.getText()

2:您应该使用“等于”比较两个字符串
passwordInput.equals(“password”)

因此,修改actionPerformed方法,如下所示:

public void actionPerformed(ActionEvent arg0){
passwordInput=password.getText();
usernameInput=username.getText();
if(passwordInput!=null
&&usernameInput!=null
&&passwordInput.equals(“密码”)
&&usernameInput.equals(“harry”)){
frame.setTitle(“成功”);
标签。设置前景(颜色。绿色);
label.setText(“授权访问”);
}否则{
frame.setTitle(“访问被拒绝”);
标签。设置前景(颜色。红色);
label.setText(“拒绝访问”);
}
}

此外,您需要获取字段的文本,而不是比较字段本身。^这也是正确的。在比较
passwordInput
usernameInput
之前,实际上需要用正确的值初始化这些字符串。e、 g.
passwordInput=password.getText()
。或者,如果不需要临时存储输入,可以跳过这一部分,直接在if子句中比较这些字符串。e、 g.
if(password.getText().equals(“password”)和&username.getText().equals(“harry”)
@maloomeister他们还需要在检查文本字段文本是否等于之前检查文本字段文本是否不为空something@ConorEgan这是正确的。