Hab da ein Problem, wie ich das folgende problem beheben könnte bzw wie ich das besser machen könnte von der strukturierung.
also ich hab für die actions,die ich den MenuItems hinzufüge, jeweils eine eigenen Klasse gemacht. Da man den Grafikthread nicht so lange aufhalten sollte, hab ich eine neue Klasse angelegt "Task" die von AbstractAction erbt und da hab ich die actionPerformed methode so implementiert das sie ein thread startet, der die abstracte methode finish() aufruft. so behinder ich den grafikthread nicht mehr wenn ich ein neuen thread starte. jetzt erben all meine action von task und ich überschreib immer nur die finish() methode. wenn ich jetzt aber in finish() ein Fortschrittanzeige im einem dialog einbaue, weil die aufgabe bischen länger dauert, kann ich, da der Grafikthread nicht durch etwas behindert ist, einfach das Hauptfenster schließen und das will ich verhindern. Wenn ich jetzt den Dialog auf modal setze kann ja der prozess nicht weiterlaufen und noch ein neuen thread erstellen ist doch auch nicht das wahre oder?
wie soll ich das problem jetzt lösen oder würdet ihr das ganze ganz anders aufbauen?
also ich hab für die actions,die ich den MenuItems hinzufüge, jeweils eine eigenen Klasse gemacht. Da man den Grafikthread nicht so lange aufhalten sollte, hab ich eine neue Klasse angelegt "Task" die von AbstractAction erbt und da hab ich die actionPerformed methode so implementiert das sie ein thread startet, der die abstracte methode finish() aufruft. so behinder ich den grafikthread nicht mehr wenn ich ein neuen thread starte. jetzt erben all meine action von task und ich überschreib immer nur die finish() methode. wenn ich jetzt aber in finish() ein Fortschrittanzeige im einem dialog einbaue, weil die aufgabe bischen länger dauert, kann ich, da der Grafikthread nicht durch etwas behindert ist, einfach das Hauptfenster schließen und das will ich verhindern. Wenn ich jetzt den Dialog auf modal setze kann ja der prozess nicht weiterlaufen und noch ein neuen thread erstellen ist doch auch nicht das wahre oder?
wie soll ich das problem jetzt lösen oder würdet ihr das ganze ganz anders aufbauen?