Brauche Hilfe bei If-Scheifen

Diskutiere Brauche Hilfe bei If-Scheifen im Java Basics - Anfänger-Themen Bereich.
M

MotheBend

Mein Problem ist, das ich einfach grad zu blöd bin einen effizienten Weg für etwas zu finden. Also erstmal der Code:

Java:
            public void actionPerformed(ActionEvent e) {
                
                if(!(fziel.getText().isEmpty())) {
                    
                    if(!(fquelle.getText().isEmpty())) {
                        
                        if(!(fordner.getText().isEmpty())) {
                            
                            fordner.setBackground(Color.WHITE);
                            fziel.setBackground(Color.WHITE);
                            fquelle.setBackground(Color.WHITE);
                            
                            testMethode();
                        }
                    } else {
                        
                    }
                }else if(fquelle.getText().isEmpty()) {
                    
                    if(fordner.getText().isEmpty()) {
                        fziel.setBackground(Color.RED);
                        fordner.setBackground(Color.RED);
                        fquelle.setBackground(Color.RED);
                    }
                    fziel.setBackground(Color.RED);
                    fquelle.setBackground(Color.RED);
                    
                } else if(fordner.getText().isEmpty()){
                    
                }
                

            }
Also: Ich habe mir eine GUI zusammengebastelt mit drei TextFields. Erst wenn alle ausgefüllt sind, sollte diese TestMethode ausgeführt werden. Funktioniert ja alles wunderbar, nur will ich hinzufügen, dass wenn eines oder mehrere der Feld nicht ausgefüllt werden, diese dann rot werden. Sollte dieses TextField dann aber befüllt werden, sollte es wieder weiß sein. Ich habe oben schon angefangen, nur irgendwie finde ich, dass es dafür eine viel effizientere Methode gibt, also die, die ich hier oben am machen bin. Da ich neugierig bin wie man das am schnellsten Lösen kann, frag ich einfach mal hier nach. :D
 
Kirby_Sike

Kirby_Sike

Java:
public void actionPerformed(ActionEvent e) {
                
    if(!(fziel.getText().isEmpty())) {
        fziel.setBackground(Color.WHITE);
    }else{
        fziel.setBackground(Color.RED);
    }

    if(!(fquelle.getText().isEmpty())) {
        fquelle.setBackground(Color.WHITE);
    }else{
        fquelle.setBackground(Color.RED);
    }
    
    if(!(fordner.getText().isEmpty())) {
        fordner.setBackground(Color.WHITE);
    }else{
        fordner.setBackground(Color.RED);
    }
    
    if(fordner.getBackground().equals(Color.WHITE) && fziel.getBackground().equals(Color.WHITE) && fquelle.getBackground().equals(Color.WHITE)){
        testMethode();
    }
}
 
Zuletzt bearbeitet:
mihe7

mihe7

Noch ein wenig DRY:

Java:
public void actionPerformed(ActionEvent e) {
    if (validateAll(fziel, fquelle, fordner)) {
        testMethode();
    }
}

public static boolean validateAll(JTextField ... fields) {
    boolean valid = true;
    for (JTextField tf : fields) {
        valid &= validate(tf);
    }
    return valid;
}

public static boolean validate(JTextField tf) {
    boolean valid = !tf.getText().isEmpty();
    tf.setColor(valid ? Color.WHITE : Color.RED);
    return valid;
}
Lässt sich natürlich immer noch verbessern/verallgemeinern.
 
Thema: 

Brauche Hilfe bei If-Scheifen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben