这是我的txt文件。
bk 456
bg 123
ll 222
pp 333
这是我的代码。
String m_uname = ManagerID.getText();
String m_pw = managerpw.getText();
try
{
BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\L\\Desktop\\NewAssignmentOODJ\\textfile\\ManagerLoginDetails.txt"));
String reader;
boolean login = false;
while ((reader = br.readLine())!=null)
{
String[] split = reader.split(" ");
if (m_uname.equals(split[0]) && m_pw.equals(split[1]))
{
login = true;
ManagerForm mform = new ManagerForm();
mform.setVisible(true);
this.setVisible(false);
break;
}
else
{
JOptionPane.showMessageDialog(null,"Whoops!","Error",JOptionPane.ERROR_MESSAGE);
}
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,"Invalid Login Details","Login Error",JOptionPane.ERROR_MESSAGE);
}
登录功能可以使用,但是在移至下一个jframe表单之前会显示错误消息。例如。如果我输入pp和333,则错误消息将显示3次,然后移至下一帧。
第一组用户名和密码可以正常工作。
答案 0 :(得分:1)
仅应在循环执行完成后显示登录错误。由于要检查每对对,所以它会显示三遍错误,因此当您输入“ pp”和“ 333”时,它会检查前三对,并发现它们不匹配,并在识别出三对错误消息之前最后一场比赛。考虑以下代码:
app.put('/UpdateTodo/:id', function (req, res) {
var date = new Date();
var _id = 0;
if (todoList.length > 0) {
_id = todoList[todoList.length - 1].id + 1;
}
var dt = date.toLocaleString();
req.params.id = Number(req.params.id);
var todoitem = { id: req.params.id, item: req.body.item, createdTime: dt, completedTime: "", status: "new" };
todoList.push(todoitem);
res.send(todoitem);
});