Hallo zusammen,
ich arbeite an einem Programm, mithilfe dessen man per Hand Funkverkehr protokollieren kann.
Zentrales Element ist ein JFrame hauptfenster in dem es mehrere JOptionPane, JScrollPanes, JTextFields, etc. gibt.
Ein Manko des Programms ist, dass, wenn man es kurzzeitig beenden muss, nach dem neu starten natürlich der Zustand aller Buttons, etc. nicht mehr so ist wie zuvor.
Daher möchte ich mittels Serialisierung ein "Abbild" des momentanen Programmstatus machen, was man dann anschließend wieder zurückladen kann.
In dem Programm gibts einen Server-Thread, den habe ich mittels transient ausgespart.
Ebenso habe ich auch nur alle Klassen Serializable implementieren lassen, in denen Daten gehalten werden, die ich benötige.
Ich speichere dieses JFrame, das die Zentrale des Programms bildet - das klappt ohne Probleme.
Beim wiedereinladen gehe ich wie folgt vor:
hauptfenser.dispose() auf das "nicht benötigte", bei Programmstart neu erzeugte JFrame
einladen mittels hauptfenster=(Hauptfenster)ois.readObject();
Auch das funktioniert ohne Fehlermeldung. Und siehe da: alle Elemente haben den gewünschten Zustand. Das Problem dabei: nichts funktioniert mehr! Alle Buttons, etc. haben ihre Funktion verloren.
Ich dachte zunächst daran, dass ich Abhängigkeiten nicht beachtet habe und deswegen eine wichtige Klasse nicht mitgesichert wird, aber:
es gibt im JFrame einen Menüpunkt, der einen MesseDialog aufruft; und alle dafür benötigten Daten liegen in eben diesem Hauptfenster.
Was mache ich falsch? Habe ich etwas übersehen?
ich arbeite an einem Programm, mithilfe dessen man per Hand Funkverkehr protokollieren kann.
Zentrales Element ist ein JFrame hauptfenster in dem es mehrere JOptionPane, JScrollPanes, JTextFields, etc. gibt.
Ein Manko des Programms ist, dass, wenn man es kurzzeitig beenden muss, nach dem neu starten natürlich der Zustand aller Buttons, etc. nicht mehr so ist wie zuvor.
Daher möchte ich mittels Serialisierung ein "Abbild" des momentanen Programmstatus machen, was man dann anschließend wieder zurückladen kann.
In dem Programm gibts einen Server-Thread, den habe ich mittels transient ausgespart.
Ebenso habe ich auch nur alle Klassen Serializable implementieren lassen, in denen Daten gehalten werden, die ich benötige.
Ich speichere dieses JFrame, das die Zentrale des Programms bildet - das klappt ohne Probleme.
Beim wiedereinladen gehe ich wie folgt vor:
hauptfenser.dispose() auf das "nicht benötigte", bei Programmstart neu erzeugte JFrame
einladen mittels hauptfenster=(Hauptfenster)ois.readObject();
Auch das funktioniert ohne Fehlermeldung. Und siehe da: alle Elemente haben den gewünschten Zustand. Das Problem dabei: nichts funktioniert mehr! Alle Buttons, etc. haben ihre Funktion verloren.
Ich dachte zunächst daran, dass ich Abhängigkeiten nicht beachtet habe und deswegen eine wichtige Klasse nicht mitgesichert wird, aber:
es gibt im JFrame einen Menüpunkt, der einen MesseDialog aufruft; und alle dafür benötigten Daten liegen in eben diesem Hauptfenster.
Was mache ich falsch? Habe ich etwas übersehen?