Maison > Java > javaDidacticiel > Comment sauvegarder et recharger l'état d'un programme Swing ?

Comment sauvegarder et recharger l'état d'un programme Swing ?

Patricia Arquette
Libérer: 2024-11-15 06:00:04
original
373 Les gens l'ont consulté

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

Sauvegarde et rechargement de l'état du programme Swing

Pour conserver et récupérer l'état de votre programme Swing, plusieurs approches sont disponibles :

API Propriétés :

L'API Propriétés offre un mécanisme de stockage de paires clé-valeur. Vous pouvez enregistrer et charger des données facilement. Cependant, seules les chaînes sont prises en charge, donc les valeurs non-chaînes nécessitent une conversion manuelle.

Properties properties = new Properties();
properties.setProperty("cell_data", board.getCellDataAsString());
properties.store(new FileOutputStream("game.properties"), "Game Properties");
Copier après la connexion

XML et JAXB :

JAXB vous permet de mapper les propriétés d'un objet en XML. et exportez-les/importez-les. Bien que plus flexible que les propriétés, elle introduit de la complexité.

JAXBContext context = JAXBContext.newInstance(Board.class);
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(board, new FileOutputStream("game.xml"));
Copier après la connexion

API Préférences :

L'API Préférences prend en charge le stockage des chaînes et des valeurs primitives sans conversion. Il charge et stocke automatiquement le contenu, mais son emplacement n'est pas sous votre contrôle.

Preferences prefs = Preferences.userRoot().node("minesweeper");
prefs.put("cell_data", board.getCellDataAsString());
Copier après la connexion

Base de données :

Les bases de données intégrées comme H2 ou HSQLDB offrent un stockage de base. Cependant, ils peuvent être plus complexes à configurer et à maintenir que d'autres options, en particulier pour de petites quantités de données.

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

Sérialisation d'objet :

Envisagez d'utiliser un objet la sérialisation en dernier recours. Il n'est pas conçu pour un stockage à long terme et comporte des problèmes potentiels.

try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("game.ser"))) {
  oos.writeObject(board);
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal