Java GUI label ändert sich erst zum Schluss

MotheBend

Mitglied
Java:
            public void actionPerformed(ActionEvent e) {
                
                File quelle = new File(fquelle.getText());

                
                if(!(fziel.getText().isEmpty())) {
                    fziel.setBackground(Color.WHITE);
                }else{
                    fziel.setBackground(Color.RED);
                    lstatus.setText("Bitte alle Felder ausfüllen!");
                }

                if(!(fquelle.getText().isEmpty())) {
                    fquelle.setBackground(Color.WHITE);
                }else{
                    fquelle.setBackground(Color.RED);
                    lstatus.setText("Bitte alle Felder ausfüllen!");
                }
                
                if(!(fordner.getText().isEmpty())) {
                    fordner.setBackground(Color.WHITE);
                }else{
                    fordner.setBackground(Color.RED);
                    lstatus.setText("Bitte alle Felder ausfüllen!");
                }
                
                if(fordner.getBackground().equals(Color.WHITE) && fziel.getBackground().equals(Color.WHITE) && fquelle.getBackground().equals(Color.WHITE)){
                    lstatus.setText("arbeitet...");
                    searchFile(quelle, fordner.getText());
                    lstatus.setText("Fertig!");
                    
                }
                

            }

Problem: Das Status label zeigt alles an, bis auf "arbeitet..."
Weil die Methode searchFile() dauert oftmals ein bisschen, und deswegen will ich, dass dann in der GUI das Jlabel geändert wird zu "arbeitet..." und danach zu "fertig".
 
Das gab es die letzte Zeit öfter, du musst die Arbeit in einen eigenen Thread auslagern:
 
Das gab es die letzte Zeit öfter, du musst die Arbeit in einen eigenen Thread auslagern:
Könntest du mir dazu ein Code beispiel geben? Ich habs gerade mal geschafft die GUI so hinzubekommen, und jetzt das in nem anderen Thread auszulagern klingt mir ziemlich kompliziert. Wäre sehr nett. 🙂
 
Java:
            public void actionPerformed(ActionEvent e) {
               
                File quelle = new File(fquelle.getText());

               
                if(!(fziel.getText().isEmpty())) {
                    fziel.setBackground(Color.WHITE);
                }else{
                    fziel.setBackground(Color.RED);
                    lstatus.setText("Bitte alle Felder ausfüllen!");
                }

                if(!(fquelle.getText().isEmpty())) {
                    fquelle.setBackground(Color.WHITE);
                }else{
                    fquelle.setBackground(Color.RED);
                    lstatus.setText("Bitte alle Felder ausfüllen!");
                }
               
                if(!(fordner.getText().isEmpty())) {
                    fordner.setBackground(Color.WHITE);
                }else{
                    fordner.setBackground(Color.RED);
                    lstatus.setText("Bitte alle Felder ausfüllen!");
                }
               
                if(fordner.getBackground().equals(Color.WHITE) && fziel.getBackground().equals(Color.WHITE) && fquelle.getBackground().equals(Color.WHITE)){
                    lstatus.setText("arbeitet...");
                    searchFile(quelle, fordner.getText());
                    lstatus.setText("Fertig!");
                   
                }
               

            }

Problem: Das Status label zeigt alles an, bis auf "arbeitet..."
Weil die Methode searchFile() dauert oftmals ein bisschen, und deswegen will ich, dass dann in der GUI das Jlabel geändert wird zu "arbeitet..." und danach zu "fertig".

Kann es vielleicht sein das die searchFile Methode schneller arbeitet und das lStatus label zu schnell auf Fertig geht?
 

Zurück
Oben