Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java For循环通过对象的ArrayList运行,并检查它们的名称以在GUI中显示它们,但仍然显示错误消息_Java_Oop_For Loop_User Interface_Nested If - Fatal编程技术网

Java For循环通过对象的ArrayList运行,并检查它们的名称以在GUI中显示它们,但仍然显示错误消息

Java For循环通过对象的ArrayList运行,并检查它们的名称以在GUI中显示它们,但仍然显示错误消息,java,oop,for-loop,user-interface,nested-if,Java,Oop,For Loop,User Interface,Nested If,我决定编写一个搜索系统,通过GUI查找学校的学生和教师。这是一个OOP,需要在这里和那里进行一些调整,但有一个问题对我来说似乎不符合逻辑。当我搜索教师时,我必须在JTextField中键入他们的姓名或姓氏,然后按下Search按钮,该按钮运行一个方法,在教师对象的ArrayList中循环,并检查他们的姓名是否与Textfield中的姓名匹配。然后它检查这些教师是否有多个科目和分数,并通过嵌套的if语句。找到教师后,他们的信息将显示在带有多个文本字段的GUI上。理论上,如果我在文本字段中键入的名称

我决定编写一个搜索系统,通过GUI查找学校的学生和教师。这是一个OOP,需要在这里和那里进行一些调整,但有一个问题对我来说似乎不符合逻辑。当我搜索教师时,我必须在JTextField中键入他们的姓名或姓氏,然后按下Search按钮,该按钮运行一个方法,在教师对象的ArrayList中循环,并检查他们的姓名是否与Textfield中的姓名匹配。然后它检查这些教师是否有多个科目和分数,并通过嵌套的if语句。找到教师后,他们的信息将显示在带有多个文本字段的GUI上。理论上,如果我在文本字段中键入的名称与教师对象中的名称不匹配,则会弹出一条错误消息,说明我要查找的教师不在系统中。但是,即使我输入了正确的名称并显示了所有信息,每次它都会向我发送错误消息。我试图用break语句来修复它,但也没用。谁能帮我一下吗。 下面是我要说的代码:

    public void lehrerSuche() 
{
    String lehrername = tfSuchfeldLehrer.getText();
    for(int i = 0; i < td.getFachliste(0).getListenLaengeLehrerListe();i++)
            {
                if(td.getFachliste(0).getLehrerliste(i).getName().equals(lehrername) || td.getFachliste(0).getLehrerliste(i).getNachname().equals(lehrername))
                {
                    if(td.getFachliste(0).getLehrerliste(i).isMehrerefaecher() && td.getFachliste(0).getLehrerliste(i).isMehrereklassen())
                    {
                        tfNameLehrer.setText(td.getFachliste(0).getLehrerliste(i).getName() + " " + td.getFachliste(0).getLehrerliste(i).getNachname());
                        tfKürzelLehrer.setText(td.getFachliste(0).getLehrerliste(i).getKuerzel() + ".");
                        tfKlasse_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlasse().getBezeichnung());
                        tfKlasse_2Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlass2().getBezeichnung());
                        tfFach_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach().getFachbezeichnung());
                        tfFach_2Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach2().getFachbezeichnung());

                    }
                    if(td.getFachliste(0).getLehrerliste(i).isMehrerefaecher() == false && td.getFachliste(0).getLehrerliste(i).isMehrereklassen())
                    {
                        tfNameLehrer.setText(td.getFachliste(0).getLehrerliste(i).getName() + " " + td.getFachliste(0).getLehrerliste(i).getNachname());
                        tfKürzelLehrer.setText(td.getFachliste(0).getLehrerliste(i).getKuerzel() + ".");
                        tfKlasse_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlasse().getBezeichnung());
                        tfKlasse_2Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlass2().getBezeichnung());
                        tfFach_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach().getFachbezeichnung());
                    }
                    if(td.getFachliste(0).getLehrerliste(i).isMehrerefaecher() && td.getFachliste(0).getLehrerliste(i).isMehrereklassen()==false)
                    {
                        tfNameLehrer.setText(td.getFachliste(0).getLehrerliste(i).getName() + " " + td.getFachliste(0).getLehrerliste(i).getNachname());
                        tfKürzelLehrer.setText(td.getFachliste(0).getLehrerliste(i).getKuerzel() + ".");
                        tfKlasse_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlasse().getBezeichnung());
                        tfFach_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach().getFachbezeichnung());
                        tfFach_2Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach2().getFachbezeichnung());
                    }
                    if(td.getFachliste(0).getLehrerliste(i).isMehrerefaecher() == false && td.getFachliste(0).getLehrerliste(i).isMehrereklassen()==false)
                    {
                        tfNameLehrer.setText(td.getFachliste(0).getLehrerliste(i).getName() + " " + td.getFachliste(0).getLehrerliste(i).getNachname());
                        tfKürzelLehrer.setText(td.getFachliste(0).getLehrerliste(i).getKuerzel() + ".");
                        tfKlasse_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getKlasse().getBezeichnung());
                        tfFach_1Lehrer.setText(td.getFachliste(0).getLehrerliste(i).getFach().getFachbezeichnung());
                    }
                    break;
                }
                else
                {
                    switchPanels_3(panelErrorLehrer);
                }
            }
}
public void lehrerSuche()
{
字符串lehrername=tfSuchfeldLehrer.getText();
for(int i=0;i
我已将我的项目上载到GitHub。方法和变量都是用德语写的,所以如果你不能理解我写的东西,我真的很抱歉。如果你有问题,请打电话给我。我使用Eclipse来编写代码。 此链接应指向我的GitHub: 如果链接不起作用,请在GitHub上查找Gonzo CR,并查看我上传所有文件的“我的家庭项目存储库”。 为了更好地理解,这些是面向对象类:

  • 人物(摘要)
  • 舒勒
  • 莱勒
  • 法赫
  • 舒尔克拉斯
  • 斯佩齐亚尔
  • 斯普雷彻 GUI类:
  • 这样的系统
  • Testdaten(生成所有my对象的类)

问题可能是,如果
td.getFachliste(0).getlehrriste(i).getName().equals(lehrername)
在循环第一次运行时,switchPanels_3(panelErrorLehrer)不是真的将被触发-无论在循环的后续迭代中是否满足该条件

你需要的是检查一下
bool lehrerGefunden = false;
for(int i = 0; i < td.getFachliste(0).getListenLaengeLehrerListe();i++){
    if(td.getFachliste(0).getLehrerliste(i).getName().equals(lehrername) || td.getFachliste(0).getLehrerliste(i).getNachname().equals(lehrername)){
        //etc.
        lehrerGefunden = true;
        break;
    }
}
if(!lehrerGefunden){
    switchPanels_3(panelErrorLehrer);
}