即使用户名和密码正确,在进入下一帧之前也会显示错误消息。 (JAVA)

时间:2018-11-05 14:32:38

标签: java swing login

这是我的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次,然后移至下一帧。

第一组用户名和密码可以正常工作。

1 个答案:

答案 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);
});