Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单密码程序的问题——Java_Java - Fatal编程技术网

简单密码程序的问题——Java

简单密码程序的问题——Java,java,Java,一天晚上,我在做一些编程,遇到了一个问题。“我的按钮”的操作侦听器中的if语句似乎未被拾取。我对编程还很陌生,所以我希望它不是太明显,有什么建议吗?代码如下: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.*; import java.util.*; import javax.swing.*; public class Login extends JFrame i

一天晚上,我在做一些编程,遇到了一个问题。“我的按钮”的操作侦听器中的if语句似乎未被拾取。我对编程还很陌生,所以我希望它不是太明显,有什么建议吗?代码如下:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.*;
import java.util.*;
import javax.swing.*;

public class Login extends JFrame implements ActionListener {
JTextField tfUsername, tfPassword;
JLabel jlUser, jlPass;
JTextArea tarea;
JButton bLogin;

public Login(){
    JFrame frame = new JFrame("Login Test");
    JPanel panel = new JPanel();
    jlUser = new JLabel("Username");
    tfUsername = new JTextField(20);
    jlPass = new JLabel("Password");
    tfPassword = new JTextField(20);
    bLogin = new JButton("Login");
    tarea = new JTextArea();

    frame.setSize(335,150);
    frame.add(panel);
    panel.add(jlUser);
    panel.add(tfUsername);
    panel.add(jlPass);
    panel.add(tfPassword);
    panel.add(bLogin);
    panel.add(tarea);
    bLogin.addActionListener(this);
    frame.setResizable(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}


public static void main(String[] args) {
new Login();

}


@Override
public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getSource() == bLogin){
        String user = tfUsername.getText();
        String pass = tfPassword.getText();
        String be = "hi";

                    if(pass == be){
            tarea.setText("Successful");
        }
}

}

问题在于如何比较pass和be字符串

这是比较对象引用,而不是它们的内容,它们总是错误的…相反,您应该使用.equals

这将进行区分大小写的比较。如果需要,您还可以使用.equalsIgnoreCase,其中大小写无关紧要

对于密码,应该使用JPasswordField并将密码存储在char数组中,因为字符串值更容易从内存中提取

这将要求您使用


有关更多详细信息,请参见…

到目前为止,我看到的是字符串比较错误。发布错误日志以查看是否存在任何其他错误。 在字符串匹配中尝试

if (pass.equals(be)) {
    tarea.setText("Successful");
}
您还可以使用compareto函数检查字符串


另外,通行证的gettext也不是很安全

u的速度更快,议员们,时间还早,而且我几乎没有睡觉,所以我有点愤世嫉俗。我当然不反对人们扩大答案或提供更多的观点,但当人们用相同的答案来回答问题时,这确实会让人恼火——伊姆霍:丘疹病,我在大喊大叫,而你只是碍手碍脚:P
if (pass.equals(be)) {
    tarea.setText("Successful");
}
if (pass.equals(be)) {
    tarea.setText("Successful");
}