Para tramos de bucle a través de un ArrayList de objetos y controles sus nombres a los muestra en GUI pero el mensaje de error sigue apareciendo

Gonzalo Cofre Real :

He decidido Programm un sistema de búsqueda para encontrar a los estudiantes y profesores en una escuela a través de interfaz gráfica de usuario. Se trata de una programación orientada a objetos y necesitan algunos ajustes aquí y allá, pero hay una cuestión que no parece lógico. Cuando estoy en busca de un profesor, tengo que escribir allí el nombre o el apellido en un JTextField y pulse el botón de búsqueda que se ejecuta un método que coloca a través de un ArrayList de profesores-objetos y comprueba si sus nombres coinciden con el que está en el campo de texto . A continuación, se comprueba si estos maestros tienen múltiples materias y grados y se pasa a través de sentencias if anidadas. Una vez encontrado el maestro, su información se visualiza en una interfaz gráfica de usuario con varios Texfields. En teoría, si el nombre que he escrito en el campo de texto no coincide con uno de los objetos del maestro, un mensaje de error debe pop-up que dice el maestro Busco ISN' T en el sistema. Sin embargo, a pesar de que escribir el nombre correcto y obtener toda la información que se muestra, me envía a la cada mensaje de error. Traté de arreglarlo con una sentencia break, pero que no funcionó bien. ¿Puede alguien por favor me ayude con esto. Aquí está el código que estoy hablando:

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

He subido mi proyecto de GitHub. Métodos y variables están escritos en alemán, así que estoy realmente lo siento si no puede entender lo que he escrito. Si tienen preguntas por favor me golpeó. Yo uso Eclipse de código. Este enlace se debe dirigir a mi GitHub: https://github.com/Gonzo-CR/Home-Projects.git Si el enlace no funciona, busca Gonzo-CR en GitHub y echa un vistazo a mi hogar-proyectos repositorio donde he subido todos los archivos. Para una mejor undestanding éstas son las clases orientadas a objetos:

  • Persona (Resumen)
  • Schueler
  • Lehrer
  • compartimiento
  • clase de la escuela
  • especial
  • El portavoz clases de interfaz gráfica de usuario:
  • Suchsystem
  • Testdaten (clase A, que genera todas mis objetos)
cmhoequist:

El problema es probable que si td.getFachliste(0).getLehrerliste(i).getName().equals(lehrername)no es verdad la primera vez que se ejecute el bucle , switchPanels_3(panelErrorLehrer);se activará - independientemente de si la condición se cumple en una iteración posterior del bucle.

Lo que necesita es comprobar un valor centinela después de que finalice bucle - por ejemplo:

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

De esa manera, comprobar cada entrada en la lista antes de decidir si se debe mostrar el error.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=284349&siteId=1
Recomendado
Clasificación