Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Swing Programm mit geänderten Parametern neu starten



BlueJay
25-10-2010, 20:17
Hallo Leute,

da habe ich so ein hübsches, kleines Progrämmchen, was auch zufriedenstellend läuft.

Wichtige Parameter wie Szenarios und Bildgrößen erhält es über eine ini-Datei.

Problem: ändert man bestimmte Optionen, muss man das Ganze neu starten, weil alle Berechnungen für die Darstellung und Simulation frisch durchgeführt werden müssen.

Wie kann man das durchführen, ohne das Programm verlassen zu müssen?
Meine bisherigen Versuche endeten immer mit 2 laufenden Instanzen (Mutter mit teils alten, teils neuen Parametern und Tochter mit den neuen).

Bisheriger Code:


static javax.swing.SwingUtilities my_swing;

public static void main(String[] args)
{ my_swing.invokeLater(new Runnable() { public void run() { mach_hinne(); } } );
}

static void restart()
{ my_swing=null;
my_swing.invokeLater(new Runnable() { public void run() { mach_hinne(); } } );
}



Normalerweise wäre der Restart nicht nötig, aber bei den Szenarien muss er komplett andere Dateien verarbeiten.

Wie kriege ich das hin, dass das mach_hinne() von der Mama sich verdrückt und nur noch das mach_hinne() von der Tochter übrigbleibt?

Gruß,
Ulrike

John W
25-10-2010, 20:41
Alle Referenzen lösen, System.gc() aufrufen, Daten neu einlesen.
Damit Änderungen in der Datei erkannt werden, müsstest du zwei Threads erstellen; einen für die Oberfläche und Verarbeitung und einen zum Prüfen.

BlueJay
25-10-2010, 22:16
... habe in den sauren Apfel gebissen und die entsprechenden Objekte mal untersucht: mach_hinne() (erstellt alle Objekte) war wirklich oversized, alle bis auf 1 waren reusable.

Dann wird halt nochmal das Dateilesen angeschubst, das "sperrige" Objekt wird mit den geänderten Daten neu erstellt, und so löppt's nun.

Gruß
Ulrike