SwingWorker, get und boolean

Status
Nicht offen für weitere Antworten.

Jonnsn

Bekanntes Mitglied
hallo,
habe mir gerade mal die Klasse SwingWorker angeschaut und brauche diese für eine programm.
ist es möglich der Methode doInBackground den Rückgabetyp boolean zu geben, damit ich in der done-methodemittels get() diesen boolean überprüfen kann und je nach dem zustand ein Label ändern kann?
habs nicht hinbekommen bisher 🙂

die doInBackground:
Code:
return methodenaufruf(); // gibt boolean zurück

die methode bzw. die Klasse kann ja anscheinend nur Boolean behandeln... also gibt sie im moment einen Boolean wert zurück - wie bekomme ich das in einen boolean?!?
in der done versuche ich diesen boolean zu überprüfen (mittels get()) und er springt in den catch block... - NullpointerException....
 
siehe oben - habe etwas aktualisiert eben....
ich glaube ich kapiere das mit den typen Boolean und boolean noch nicht ganz :? (äh der Wrapper-Klasse Boolean und dem typ boolean)

Nullpointer Exception.
ich versuche in der done einem bestehenden boolean den wert von get() zuzuweisen ...
 
da kommt auch ne NullPointerException :?

würde ja auch einfach den code posten aber is auf nem anderen rechner...
 
Code:
package basics;
/*
 * WorkerDemo.java
 */
import java.util.concurrent.*;
import javax.swing.*;
public class WorkerDemo {
    public WorkerDemo() {
        SwingWorker worker = new SwingWorker() {
            protected Object doInBackground() throws Exception {
                return xyz();
            }
            protected void done() {
                try {
                    if((Boolean)get()){
                        System.out.println("ok");
                    }else{
                        System.out.println("upps!");
                    }
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                } catch (ExecutionException ex) {
                    ex.printStackTrace();
                }
            }
        };
        worker.execute();
    }
    private boolean xyz(){
        return true;
    }
    public static void main(final String[] args) {new WorkerDemo();}
}
 
Sorry dass es so spät kommt - musste weg...
Danke für den Code!!! - ich hab meinen Fehler gefunden.
Der hatte sich an anderer Stelle in das doch inzwischen leicht komplizierte Programm eingeschlichen.
Muss mal dringend schauen ob ich es nicht an mancher Stelle vereinfachen könnte.
das mit dem AutoBoxing funktioniert einwandfrei. Danke nochmal vielmals!!!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben