ホームページ >Java >&#&チュートリアル >Swing プログラムの状態を保存して再ロードするにはどうすればよいですか?
Swing プログラムの状態の保存と再ロード
Swing プログラムの状態を保存および取得するには、いくつかの方法が使用できます。
プロパティ API:
プロパティ API は、キーと値のペアの保存メカニズムを提供します。データの保存や読み込みも簡単に行えます。ただし、文字列のみがサポートされているため、文字列以外の値は手動で変換する必要があります。
Properties properties = new Properties(); properties.setProperty("cell_data", board.getCellDataAsString()); properties.store(new FileOutputStream("game.properties"), "Game Properties");
XML と JAXB:
JAXB を使用すると、オブジェクト プロパティを XML にマップできます。そしてそれらをエクスポート/インポートします。プロパティよりも柔軟ですが、複雑になります。
JAXBContext context = JAXBContext.newInstance(Board.class); Marshaller marshaller = context.createMarshaller(); marshaller.marshal(board, new FileOutputStream("game.xml"));
Preferences API:
Preferences API は、文字列値とプリミティブ値を変換せずに保存することをサポートします。コンテンツは自動的にロードおよび保存されますが、その場所は制御できません。
Preferences prefs = Preferences.userRoot().node("minesweeper"); prefs.put("cell_data", board.getCellDataAsString());
データベース:
H2 や HSQLDB などの組み込みデータベースは、基本的なストレージを提供します。ただし、特に少量のデータの場合、他のオプションよりも設定と保守が複雑になる可能性があります。
try (Connection connection = DriverManager.getConnection("jdbc:h2:~/minesweeper")) { try (Statement statement = connection.createStatement()) { statement.execute("INSERT INTO cells (data) VALUES ('" + board.getCellDataAsString() + "')"); } }
オブジェクトのシリアル化:
オブジェクトの使用を検討してください。最後の手段として連載化。長期保管用に設計されていないため、潜在的な問題が発生します。
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("game.ser"))) { oos.writeObject(board); }
以上がSwing プログラムの状態を保存して再ロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。