java GUI:while循环和if / else语句

时间:2013-11-09 17:03:52

标签: java swing user-interface if-statement while-loop

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

我现在所拥有的程序是每次输入错误的ID后,即使我输入的下一个ID是正确的ID,我也无法向屏幕显示正确的信息。我的GUI永远保持在“错误的id”状态。我花了几个小时试图弄清楚出了什么问题,但我找不到它。任何帮助将不胜感激!

The GUI screenshot

  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();   
            }
      }
  }

1 个答案:

答案 0 :(得分:1)

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