Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Swing Programm mit geänderten Parametern neu starten

  1. #1
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825

    Swing Programm mit geänderten Parametern neu starten

    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:
    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
    Eigentlich ganz einfach, wenn man's weiss!

  2. #2
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    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.

  3. #3
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    ... 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
    Geändert von BlueJay (25-10-2010 um 23:21 Uhr)
    Eigentlich ganz einfach, wenn man's weiss!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •