Variabeln speichern in Desktop Anwendung

internet

Top Contributor
Hallo,

ich kenne mich leider überhaupt nicht aus bei der Programmierung von Desktop Anwendungen.
Ich benötige eine kleine GUI zum Starten und Stoppen eines Servers.
Da ich aber gewisse Dinge speichern möchte (z.B. Port-Nummer), meine Frage: wo speichere ich das ab? Natürlich so, dass der Zustand der Variable beim nächsten Neustart nicht verloren geht.
Benötige ich hierzu eine Datenbank? Oder wie macht man das bei einer Desktop Anwendung?

Danke für jede Hilfe.
 
Je nachdem ob die Daten außerhalb der Anwendung verarbeitbar sein sollen kannst du die Variablen serialisieren oder in eine Konfig Datei abspeichern.
Eine Datenbank ist dabei nicht notwendig, kann sich aber auch anbieten.
 
Ich habe es in einem meiner Projekte so gemacht:
Java:
/*
import java.io.FileReader;
import java.io.FileWriter;
*/
  // Klassenattribute
  // Zum Speichern der Einstellungen
   private final String settingsFileName = "Settings.txt";
 
   private final int DATABASE_FULL_NAME = 0;
   private final int PDF_PATH = 1;
   private final int PREVIEW_PATH = 2;
   private final int TEMP_PATH = 3;
   private final int GHOSTSCRIPT_PATH = 4;
 
   // Schlüssel (key) für das Schreiben und Lesen der Einstellungen
   private final String[] key = {"DATABASE_FULL_NAME", "PDF_PATH", "PREVIEW_PATH", "TEMP_PATH", "GHOSTSCRIPT_PATH"};
 
   // Schlüsselwerte (keyValue) für das Schreiben und Lesen der Einstellungen
   // bzw der Text der Eingabefelder
   private String[] keyValue = new String[key.length];

//::::::::::
//::::::::::

private void readSettings() {
     // Liest die Einstellungen
     Reader reader = null;
     try {
       reader = new FileReader(settingsFileName);
       Properties prop = new Properties();
       prop.load(reader);
       for (int i = 0; i < key.length; i++) {
         keyValue[i] = prop.getProperty(key[i]);
       }
     }
     catch (IOException e) {
       e.printStackTrace();
       JOptionPane.showMessageDialog(null,
           "Fehler beim Lesen der Einstellungen.\n" +
           settingsFileName + "\n" + e.getMessage());
     }
     finally {
       try { reader.close(); }
       catch (Exception e) {       
         e.printStackTrace();
         JOptionPane.showMessageDialog(null,
             "Fehler beim Schließen des Reader-Objekts.\n" + e.getMessage());
       }
     }    
   }  

   private void writeSettings() {
     // Schreibt die Einstellungen
     Writer writer = null;
     try {
       writer = new FileWriter(settingsFileName);
       Properties prop = new Properties(System.getProperties());
       for (int i = 0; i < key.length; i++) {
         prop.setProperty(key[i], inputField[i].getText());
       }
       prop.store(writer, "DocArchive - Settings");
     }
     catch (IOException e) {
       e.printStackTrace();
       JOptionPane.showMessageDialog(null,
           "Fehler beim Schreiben der Einstellungen.\n" +
           settingsFileName + "\n" + e.getMessage());
     }
     finally {
       try { writer.close(); }
       catch (Exception e) {
         JOptionPane.showMessageDialog(null,
           "Fehler beim Schließen des Writer-Objekts.\n" + e.getMessage());
       }
     }    
   }
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben