versuche gerade swingworker zu lernen damit die gui nicht immer einfriert, könnte man vielleicht aufgabe1 in einer anderen Klasse ausführen, z.B. in NewJFrame oder so? müsste doch eigentlich irgendwie mit execute gehen, aber bekomme das nicht hin
new LangDauerndeAufgaben.aufgabe1().execute() funktioniert schon, aber das mit dem c nicht. In process() alle Elemente der Liste abarbeiten, weil nicht vorherzusagen ist, wie viele Elemente in der Liste sind. Zwei publish-Aufrufe können zu zwei process-Aufrufen mit jeweils einem Element in der Liste führen, können aber auch zu einem Aufruf mit zwei Elementen in der Liste führen.
klappt! nur komischerweise sobald man in doInBackground() ein BufferedImage erstellt, wird nicht mehr gearbeitet, also die zwei publish aufrufe scheinen dann plötzlich nicht mehr zu klappen. z.B.
BufferedImage bi = ImageIO.read(new File(„image.jpg“);
okay schonmal danke. also schreibt man nur in doInBackground():
File f = new File(„image.jpg“);
BufferedImage bi;
scheinen die publish noch zu klappen, also Haelfte fertig und fertig wird ausgegeben, schreibt man zusätzlich noch
@Override
protected void done(){
NewJFrame.statusTextArea.append(„Fertig mit worker!“);
}
dann klappt das auch. Aber sobald in doInBackground() diese zeile ergänzt wird, ist der worker anscheinend sofort fertig, macht gar kein publish mehr sondern nur noch „Fertig mit worker“.
wo sind die klugen köpfe? müsste man vielleicht die images irgendwie als classpath variable oder sonstwas im Projekt bekanntmachen? Fehler lässt sich nich beheben… vllt ganz einfach aber noch nich geschafft
Vermutlich passt der Pfad nicht. Lass ihn Dir doch mal ausgeben und schau Dir auch die Varianten unter dem Punkt ImageIO an: Grafikdateien laden und anzeigen
public class Test
{
public static void main(String[] args)
{
File f = new File("image.jpg");
System.out.println(f.exists());
System.out.println(f.getAbsolutePath());
}
}
schau dir an wohin dein Pfad aktuell führt und passe ihn so, dass er stimmt,
Class.getResource/AsStream ist noch ein anderer Ladeweg