swing(TXT文件)Java GUI登录
我想从名为“members.txt”的文本文件登录,该文件使用第二行(用户名)和第三行(密码)以及“/”分隔符。但当我运行它时,它们似乎可以按顺序识别文本文件的所有帐户。请帮忙。这是我的密码
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String s;
String bypassid = "guest";
String bypasspw = "guest";
String[] array;
boolean isLogin= false; // 포기
BufferedReader br = new BufferedReader(new FileReader("members.txt"));;
while((s=br.readLine())!=null) {
array=s.split("/");
if(txtID.getText().equals(array[1])&&txtPass.getText().equals(array[2])){
JOptionPane.showMessageDialog(null, "로그인 되셨습니다");
break;
} else if(array.length != 0 && bypassid.equals(txtID.getText())&&bypasspw.equals(txtPass.getText())){
JOptionPane.showMessageDialog(null, "로그인 되셨습니다");
break;
} else {
JOptionPane.showMessageDialog(null, "계정 정보를 다시 확인해주세요.");
}
}
br.close();
} catch (IOException e10) {
// TODO Auto-generated catch block
e10.printStackTrace();
}
}
});
# 1 楼答案
实际上,您正在读取每一行,如果用户/密码不匹配,则在else{}块中打印错误消息。您只需设置一次布尔变量isLogin,查看isLogin是否为false,并在循环外打印一次错误消息。下面是这方面的代码片段。用下面的代码替换actionPerformed方法
请注意@David Kroukamp在评论中提到的内容