Heim >Java >javaLernprogramm >Wie speichere und lade ich den Status eines Swing-Programms neu?

Wie speichere und lade ich den Status eines Swing-Programms neu?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-15 06:00:04374Durchsuche

How to Save and Reload the State of a Swing Program?

Swing-Programmstatus speichern und neu laden

Um den Status Ihres Swing-Programms beizubehalten und abzurufen, stehen mehrere Ansätze zur Verfügung:

Eigenschaften-API:

Die Eigenschaften-API bietet einen Speichermechanismus für Schlüssel-Wert-Paare. Sie können Daten einfach speichern und laden. Es werden jedoch nur Zeichenfolgen unterstützt, sodass Werte, die keine Zeichenfolgen sind, eine manuelle Konvertierung erfordern.

Properties properties = new Properties();
properties.setProperty("cell_data", board.getCellDataAsString());
properties.store(new FileOutputStream("game.properties"), "Game Properties");

XML und JAXB:

JAXB ermöglicht Ihnen die Zuordnung von Objekteigenschaften zu XML und exportieren/importieren. Es ist zwar flexibler als Eigenschaften, bringt aber auch Komplexität mit sich.

JAXBContext context = JAXBContext.newInstance(Board.class);
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(board, new FileOutputStream("game.xml"));

Preferences API:

Die Preferences API unterstützt das Speichern von String- und Grundwerten ohne Konvertierung. Inhalte werden automatisch geladen und gespeichert, der Speicherort unterliegt jedoch nicht Ihrer Kontrolle.

Preferences prefs = Preferences.userRoot().node("minesweeper");
prefs.put("cell_data", board.getCellDataAsString());

Datenbank:

Eingebettete Datenbanken wie H2 oder HSQLDB bieten grundlegenden Speicher. Sie können jedoch komplexer einzurichten und zu warten sein als andere Optionen, insbesondere bei kleinen Datenmengen.

try (Connection connection = DriverManager.getConnection("jdbc:h2:~/minesweeper")) {
  try (Statement statement = connection.createStatement()) {
    statement.execute("INSERT INTO cells (data) VALUES ('" + board.getCellDataAsString() + "')");
  }
}

Objektserialisierung:

Erwägen Sie die Verwendung von Objekten Serialisierung als letztes Mittel. Es ist nicht für die Langzeitlagerung konzipiert und birgt potenzielle Probleme.

try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("game.ser"))) {
  oos.writeObject(board);
}

Das obige ist der detaillierte Inhalt vonWie speichere und lade ich den Status eines Swing-Programms neu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn