javagui:while循环和if/else语句

javagui:while循环和if/else语句,java,swing,user-interface,if-statement,while-loop,Java,Swing,User Interface,If Statement,While Loop,我正在构建一个JavaGUI,它要求用户输入他的用户id,如果我在我的文本文件列表中找到了匹配项,那么我会在GUI面板上显示他的信息。如果找不到他的id,我会显示一个提示,要求他再次输入id 我现在的程序是,每次我输入错误的id后,即使我输入的下一个id是正确的,我也无法在屏幕上显示正确的信息。我的GUI永远处于“错误id”状态。我花了几个小时试图找出哪里出了问题,但就是找不到。任何帮助都将不胜感激 private class okButtonListener implements Acti

我正在构建一个JavaGUI,它要求用户输入他的用户id,如果我在我的文本文件列表中找到了匹配项,那么我会在GUI面板上显示他的信息。如果找不到他的id,我会显示一个提示,要求他再次输入id

我现在的程序是,每次我输入错误的id后,即使我输入的下一个id是正确的,我也无法在屏幕上显示正确的信息。我的GUI永远处于“错误id”状态。我花了几个小时试图找出哪里出了问题,但就是找不到。任何帮助都将不胜感激

  private class okButtonListener implements ActionListener{
      public void actionPerformed(ActionEvent e){
          FileReader fr = null;
            try{
                fr = new FileReader("charList.txt");
            }
            catch (FileNotFoundException e1){
                e1.printStackTrace();
            }
            BufferedReader bf = new BufferedReader(fr);

            userID = Integer.parseInt(idField.getText());

            while(line != null){
                try{
                    line = bf.readLine();
                }
                catch (IOException e1){
                    e1.printStackTrace();
                }
                if (line != null){
                    fields = line.split("\t");
                    if (userID == Integer.parseInt(fields[0])){
                        System.out.println(fields[2]);
                        displayFieldsSelections();
                        resetFields();
                        break;
                    }
                }
            }

            if (userID != Integer.parseInt(fields[0])){
                mistakeResetFields();   
            }
      }
  }


我认为问题在于您没有在本地声明
line
。在方法的开头,尝试声明
line

mistakeResetFields方法做什么?首先尝试跟踪代码或放置一些System.err.println()以查看代码可能被卡住的位置。为什么
line
未在本地声明?尝试trim,然后检查
是否(userID==Integer.parseInt(fields[0].trim()){
@petermm非常感谢!我在本地声明了line,它现在运行良好!如果您能解释这导致OP an问题的原因,我想这将有助于帮助他们理解问题,因为我花了半个小时试图找出问题以及您的答案与此相关;)谢谢你们两位!@MadProgrammer