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); }
위 내용은 스윙 프로그램의 상태를 저장하고 다시 로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!