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:
calculateNoFeedback() Methode sieht so aus:
und startAPI() Methode ruft dann die entsprechenden vom User gewählten APIs auf:
Danke.
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.