简单密码程序的问题——Java
一天晚上,我在做一些编程,遇到了一个问题。“我的按钮”的操作侦听器中的if语句似乎未被拾取。我对编程还很陌生,所以我希望它不是太明显,有什么建议吗?代码如下:简单密码程序的问题——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
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");
}