Problem mit Threadaufruf

Tristoni

Grünschnabel
Hi nun
ich habe das Problem das ich in einer Methode einen Thread starte, dieser Thread ist definiert in einer Unterklasse von meinem GUI.
IN dem Thread starte ich ein Programm, welches eine Berechnung durchführt und auf der Konsole ausgaben macht.
Nun mein Problem ich bekomme es nicht hin das sich das GUI aktualisiert weil der Thread irgendwie nicht einschläft.
Der Thread soll nämlich schlafen damit Ausgaben in ein textfeld hineingelegtwerden können schon während es schon läuft.

meine Unterklasse:
Code:
class ThreadAusgabe implements Runnable
{
    private NewApplication appsObject = new NewApplication(); 
    public void run(){
        
        String programm = processPhreeqcProgramm; 
        String in = processPhreeqcIn;
        String out = processPhreeqcOut;
        String special = processPhreeqcSpecial;
        File path = processPhreeqcPath;
        try{
            Process p = Runtime.getRuntime().exec(programm + in + out + special, null, path);
            BufferedReader input = new BufferedReader(new InputStreamReader(p.getErrorStream()));     
            String s;        
            int i = 0;
            while((s = input.readLine()) != null) {
                if(i < 10 ){
                    appsObject.setzeAusgabe(s);              
                }else{
                    i = 0;
                    try{
                             Thread.sleep(300);
                      }catch(InterruptedException ex){
                        ex.printStackTrace();
                    }
                }
                i++;
            }
            p.destroy();
        }catch(IOException ex){
        }
    }
}
Und nun meine Methode zum schreiben in das GUI
Code:
        public void setzeAusgabe(String s){
            ausgabeTextArea.append(s + newline);
        }

vlt kann nmir ja wer helfen bin hier nämlich am verzweifeln
lg tristoni
 
Wie startest du deinen Thread? Denk daran start zu benutzen! Woran merkst du dass dein Thread nicht schläft?

Denk daran beim Zugriff aus deinem Thread auf die GUI die SwingUtilities.invokeAndWait oder invokeLater zu verwenden.
 

Neue Beiträge

Zurück