# Neustart des Programms



## Coder09 (18. Aug 2009)

Hallo,
mein erstes Programm ist nun fast fertig.
Es gibt einen Button "Neustart" mit dem man das Programm neu starten kann.

Meine Frage nun: Wenn der User das Programm das erste mal startet und Variablen gesetzt werden, die Labeltexte verändert werden und Button deaktiviert werden und er dann auf Neustart klickt, gibt es da einen Befehl, der die Variablen wieder zurücksetzt und alles wie vor dem Programmstart wieder herstellt?

Vielleicht hilft das: Mein Programm ist wie folgt aufgebaut:

```
public void actionPerformed(ActionEvent ae)
    {

        String Kommando = ae.getActionCommand();
        if(Kommando.equals("neu"))
        {
            fehlermeldung.setText("Neustart");
        }
            if(Kommando.equals("klick"))
        {
        }
     }
```

Bei dem Ausführen des Programms führt er die if Klammer bei klick durch, bei Neustart erscheint eine Meldung Neustart. Wie kann ich nun alles wieder auf den Anfangszustand zurücksetzen?


----------



## FatFire (19. Aug 2009)

> gibt es da einen Befehl, der die Variablen wieder zurücksetzt und alles wie vor dem Programmstart wieder herstellt?


Kurz gesagt: Nein!


> Wie kann ich nun alles wieder auf den Anfangszustand zurücksetzen?


In dem Du einfach alles wieder in den Anfangszustand zurückführst. Da kann man sich viel Arbeit ersparen, wenn man MVC-Prinzipien bei der Programmierung anwendet. Wenn die Daten gut getrennt sind von Logik und Darstellung, obendrein Logik und Darstellung ihre Zustände aufgrund der zugrunde liegenden Daten ermitteln, dann kannst Du für einen Neustart einfach die Daten wegschmeißen und durch ein "frisches" Datenmuster (sprich: neue Instanz der Klasse) ersetzen. Ist Dir das zu aufwändig, musst Du wohl alle Einstellungen manuell auf Neustart konfigurieren.

Gruß FatFire


----------



## Schandro (19. Aug 2009)

> gibt es da einen Befehl, der die Variablen wieder zurücksetzt und alles wie vor dem Programmstart wieder herstellt?


Nein, dass müsstest du per Hand einprogrammieren.
Du könntest natürlich alle Fenster schließen usw.. und dann die main-Methode der Haupklasse aufrufen, dann wäre es so wie wenn der Benutzer das Programm per Hand neugestartet hätte (wenn du keine bösen statischen Variablen o.ä. benutzt)

@FatFire:
Kann es sein das uns grad beiden langweilig ist und wir die "unbeantworteten Themen" durchsuchen, damit wir wenigstens noch ein paar hilfreiche Posts loswerden bevor SlaterB und co. wiederkommen? Und warum postest du immer 1 Minute vor mir, so das ich es beim ersten durchlesen des Threads noch nicht sehe?^^


----------



## FatFire (19. Aug 2009)

@Schandro: Zum ersten: Japp, zum zweiten: vorhin warst Du deutlich schneller als ich ;-)


----------



## 0din (19. Aug 2009)

mir fallen nur zwei lösungen ein.

1. Schreibs selbst,
also alle variablen etc. wieder auf anfangswert​
2. Neue Objekte erzeugen,
also wenn du gescheit OOP getriebn hast, die alten objekte die in der main gemacht wurden, erneut machen​


----------

