Swing SwingWorker - richtige Implementierung doInBackground()

sp2017

Mitglied
Ich habe eine Frage zum SwingWorker. Nachdem was ich gelesen habe, sollte doInBackground() time consuming tasks ausführen. Allerdings ist mir jetzt nicht klar, was in meinem Fall in die doInBackground() Methode gehört, die calculateNoFeedBack() Methode oder liege ich da komplett falsch und habe das ganze falsch verstanden? Den SwingWorker wollte ich implementieren, da die named entity extraction (APIs sind für Named Entity Extraction) einige Zeit dauert und ich gerne eine %-Angabe hätte oder einfach einen Text ausgeben wollte (Entities werden extrahiert oder so)

In meinem Programm rufe ich nachdem ein Button geklickt wurde folgende Methode auf:
Code:
tModel.calculateNoFeedback(tView.getLanguage(), tView.getAPI(), tView.getCorr();

calculateNoFeedback() Methode sieht so aus:
Code:
public void calculateNoFeedback(String language, List<String> api, List<String> corr)  {



        Map<String, Object> apis = startAPI(api, textList);

    }

und startAPI() Methode ruft dann die entsprechenden vom User gewählten APIs auf:


Code:
public Map<String, Object> startAPI(List<String> selectedAPI, List<String> text) throws InvocationTargetException, IOException, InterruptedException, URISyntaxException, GateException {

        API apiExtract;

       

        Map<String, Object> microsoftValues;

        Map<String, Object> gateValues;

        Map<String, Object> googleValues;

        Map<String, Object> alchemyValues;

       

        Map<String, Object> apisValues = new HashMap<String, Object>();

       

        for(String a : selectedAPI) {

            switch (a) {

            case "alchemy" : 

                System.out.println(" API alchemy");

                 

                break;

               

            case "google": 

                System.out.println(" API google");

                break;

               

            case "gate": 

                System.out.println(" API gate"); 

                apiExtract = new GateAPI();

                gateValues = apiExtract.getEntities(text);

                apisValues.put("valuesGate", gateValues);

                //System.out.println("gate values: "+apiValues);

                break;

               

            case "microsoft": 

                System.out.println(" API microsoft");

                apiExtract = new MicrosoftAPI();

                microsoftValues = apiExtract.getEntities(text);

                apisValues.put("valuesMS", microsoftValues);

                //System.out.println("ms values: " + apiValues);

                break;

               

            }

        }

        return apisValues;

    }

Danke.
 

Thallius

Top Contributor
Wird denn die calculateNoFeedback Methode in einer schleife aufgerufen oder was?

Wenn du nur eine Methode ausführst dann bringt ein Swingworker ja nichts solange du nicht irgendwas das im Hintergrund passiert einen Statustext ändern kann. Würde das calculaeNoFeedback also nur einmal aufgerufen kannst du ja auch vorher deinen "Bitte Warten" Text ausgeben oder nicht?

Bekommst du während calculateNoFeedback rennt denn irgendwelche Rückmeldungen wie weit die Methode ist oder irgendwas das du während die Methode rennt updaten oder ausgeben könntest?

Gruß

Claus
 

Flown

Administrator
Mitarbeiter
Meiner Meinung nach gehört entweder ein Callback in die startAPI rein oder du machst das ganze in der doInBackground. Da kennst du ja den Fortschritt und den verbleibenden Arbeitsaufwand.
 

sp2017

Mitglied
Es ist so, das von der calculateNoFeedback() zuerst die APIs aufgerufen werden (die jeweils gewählten vom User hier stehen 4 zur Auswahl und es kann eine oder alle 4 gewählt werden) und von den Ergebnissen, die ich von den APIs erhalte, wird danach eine Methode aufgerufen die die Korrelation berechnet. Eventuell habe ich das mit dem SwingWorker auch falsch verstanden. Ich wollte eben wenn API1 aufgerufen wird einen Statustext ausgeben (API1 extracts entities.....) dann bei API2 (API2 extracts entities....). Also ich wollte das GUI updaten während die Methoden laufen, und da dachte ich das ich einen SwingWorker brauche, weil ohne den wird mir nichts ausgegeben bzw. erst nachdem alle APIs und die Berechnung fertig ist
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ralfb1105 Swing Frage zu SwingWorker Verhalten bei cancel() AWT, Swing, JavaFX & SWT 2
ralfb1105 Swing SwingWorker - max 10 Threats werden gestartet !? AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing Ausführung einer SwingWorker Klasse stoppen AWT, Swing, JavaFX & SWT 4
ralfb1105 Swing Timer in SwingWorker stoppen AWT, Swing, JavaFX & SWT 4
H Swing BufferedReader.close() hängt im SwingWorker AWT, Swing, JavaFX & SWT 1
Nuiton Swing SwingWorker - Prozess stoppen AWT, Swing, JavaFX & SWT 4
Thallius Auf Swingworker warten? AWT, Swing, JavaFX & SWT 5
M SwingWorker Hilfe! AWT, Swing, JavaFX & SWT 10
J Swing Nach SwingWorker Funktion aus der GUI Klasse aufrufen AWT, Swing, JavaFX & SWT 5
C Swing SwingWorker abbrechen AWT, Swing, JavaFX & SWT 12
C Swing SwingWorker: Auf beendigung eines Formulars / einer Arbeit warten AWT, Swing, JavaFX & SWT 10
Psypsy Swing SwingWorker unterschied zwischen setProgress und process AWT, Swing, JavaFX & SWT 2
A Swingworker rückgabewert verwenden AWT, Swing, JavaFX & SWT 9
B Frage zu Swing,Threads, SwingWorker und Socket Communikation AWT, Swing, JavaFX & SWT 4
M Prioritäten bei SwingWorker / Threads AWT, Swing, JavaFX & SWT 9
M Liste mittels SwingWorker füllen klappt nicht AWT, Swing, JavaFX & SWT 10
Iron Monkey SwingWorker verschwindet nicht AWT, Swing, JavaFX & SWT 10
X Prozess mit Runtime.getRuntime in SwingWorker aufrufen AWT, Swing, JavaFX & SWT 6
R Zugriff auf Model im MVC-Design aus SwingWorker heraus AWT, Swing, JavaFX & SWT 3
G SwingWorker setProgress Problem AWT, Swing, JavaFX & SWT 17
K Frage zu ProgressBar, SwingWorker etc. AWT, Swing, JavaFX & SWT 4
G SwingWorker AWT, Swing, JavaFX & SWT 2
J Unterschied zwischen SwingWorker und Threads AWT, Swing, JavaFX & SWT 4
S SwingWorker :( AWT, Swing, JavaFX & SWT 6
F swingworker und eventdispatch thread AWT, Swing, JavaFX & SWT 9
S SwingWorker - ich werde wahnsinnig AWT, Swing, JavaFX & SWT 4
0 SwingWorker Tutorial ? AWT, Swing, JavaFX & SWT 2
L SwingWorker Thread pausieren AWT, Swing, JavaFX & SWT 12
L SwingWorker Statusabfrage AWT, Swing, JavaFX & SWT 8
M Kann ein SwingWorker nur einmal laufen? AWT, Swing, JavaFX & SWT 2
J SwingWorker, get und boolean AWT, Swing, JavaFX & SWT 6
B JavaFX das richtige ListView filtern AWT, Swing, JavaFX & SWT 2
S Swing Tabellen - Listener & richtige Row AWT, Swing, JavaFX & SWT 3
S Elemente im Panel in richtige Ausgangsstellung bringen AWT, Swing, JavaFX & SWT 10
T richtige anordnung mit SWT AWT, Swing, JavaFX & SWT 14
P LayoutManager welcher LM ist der richtige? AWT, Swing, JavaFX & SWT 3
A LookAndFeel Suche richtige Technologie für eine bestimme Desginvorlage AWT, Swing, JavaFX & SWT 5
D Richtige implimentierung eines CardLayout AWT, Swing, JavaFX & SWT 3
T SWT String mitten ins Textfeld einfügen + richtige Cursorposition AWT, Swing, JavaFX & SWT 3
P richtige "Architektur" mit GUIs AWT, Swing, JavaFX & SWT 2
F Der richtige Layoutmanager AWT, Swing, JavaFX & SWT 6
Lazybone der Richtige Layout Manager AWT, Swing, JavaFX & SWT 2
R Richtige Klasse ändern AWT, Swing, JavaFX & SWT 3
M GUI mit Swing erst nach Maximieren richtige Anzeige AWT, Swing, JavaFX & SWT 2
B JavaFX Verständnisfrage EventHandler<ActionEvent> Implementierung in meiner Klasse AWT, Swing, JavaFX & SWT 2
B Java FX In control.TreeCell-Implementierung Binding erzeugen AWT, Swing, JavaFX & SWT 0
H JTextArea - farbige Zeilen .. bitte um Vorschläge zur Implementierung AWT, Swing, JavaFX & SWT 1
F Problem mit Implementierung von Kollisionsabfrage AWT, Swing, JavaFX & SWT 5
W Java AWT/GUI Implementierung gesucht AWT, Swing, JavaFX & SWT 3
M Implementierung der generalisierten Houghtranformation AWT, Swing, JavaFX & SWT 4
E Implementierung des Windows Rechners? AWT, Swing, JavaFX & SWT 7
N AWT seperate ActionHandler Implementierung AWT, Swing, JavaFX & SWT 2
Dit_ Swing MutableComboBoxModel | Implementierung AWT, Swing, JavaFX & SWT 10
hdi Swing Gemeinsame JTable-Implementierung AWT, Swing, JavaFX & SWT 23
E AWT Implementierung einer Anweisung in Methode ActionPerformed AWT, Swing, JavaFX & SWT 2
R JTable: Implementierung einer JTable in einer JScrollPane AWT, Swing, JavaFX & SWT 2
cowabunga1984 Implementierung von Graphics2D AWT, Swing, JavaFX & SWT 2
S Implementierung Java Swing HelloWorld - verständnisproblem AWT, Swing, JavaFX & SWT 3
M Implementierung einer Zusammenstellung (AWT) AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben