Optionen übernehmen

Laren

Bekanntes Mitglied
Hi,

Ich schreibe gerade an einer Gui und dieses soll noch mit einem Reiter Einstellungen/Optionen ausgestattet werden.
Dies funktioniert auch alles, aber wie kann ich einen "übernehmen" Button programmieren, also ein Button der die gewählten Optionen auch nach schliesen des Programmes beibehält?
Dachte da zuerst daran alles in eine Textdatei auszulagern, aber weis nicht genau.

Viele Grüße
 
Ich rate Dir mal java.util.prefs.Preferences anzuschauen, weil es genau dafür gemacht worden ist.

Was auch oft benutzt wird ist "Apache Commons Configuration" oder eine (embedded SQL-) Datenbank.

Natürlich kannst Du auch alle Daten in eine externe Datei schreiben, aber dann musst Du damit rechnen dass Dir ein DAU die Einträge kaputt schreibt.
 
Zwei Lösungsmöglichkeiten:

Für wenige, einfache Settings bietet sich eine Properties-Datei an, die von der Properties-Klasse automatisch gelesen und geschrieben werden kann (als Text oder XML).

Für viele oder kompliziertere Werte gibt es die Klasse Preferences, die die Werte "systemtypisch" wegspeichert (z.B. unter Windows in die Registry). Vorteil ist, dass man im Gegensatz zu den "platten" Properties eine hierarchische, also baumartige Struktur hat. Man kann auch eigene Implementierungen einklinken (man könnte etwa so eine Datenbank als Speicherort verwenden).

[Edit] Bwah, zu langsam :-/
 
Da du deine Einstellungen während der Programmlaufzeit in einem Objekt verwaltest, kannst du das natürlich auch serialisieren lassen.

Vorteile:
  1. Kann später einfach wieder geladen und in den Programmablauf eingebunden werden.
  2. Es können alle Datenstrukturen nachgebildet werden, die man benötigt.
  3. Man bleibt im OOP, muss also keine Objekte in Datenbanken pressen!

Nachteile:
  1. Die Objekte können nur genutzt werden, wenn man auch die entsprechenden Klassen dazu besitzt.
  2. Klassen und Objekte müssen serialisierbar sein
  3. Ansonsten ergibt sich die gleiche Problematik, wie bei PlainText, wenn man drin rumpfuscht ...
 
Gegen Serialisierung spricht, dass schon kleine Änderungen zu Inkompatibilitäten führen, das gespeicherte Objekt also "unlesbar" wird. Für Anfänger definitiv zu tricky.
 

Zurück
Oben