Swing-приложения уже организованы в деревья. JFrame является корнем, дети могут посещать:
Component[] components1 = mFrame.getContentPane().getComponents();
Каждый компонент имеет подкомпоненты, которые вы можете получить:
// Assuming component is a container
((Container)component).getComponents();
Сохранение этих элементов в файл - это простая операция. Вот хорошая статья , чтобы дать вам оценку.
РЕДАКТИРОВАТЬ Прелесть потоков в том, что вы можете использовать файл, как если бы вы использовали сокет :)
Таким образом, превращение ComponentSerializer компонента для сериализации в файл вместо сокета требует 0 изменений:)
Скажем, у вас есть JFrame, который вы хотите сохранить / прочитать в / из файла, вы делаете следующее:
OutputStream output = new FileOutputStream("FileName.bin");
JFrame myFrame = new JFrame();
ComponentSerializer serializer = new ComponentSerializer();
serializer.write(myFrame, output);
// Reading from file
InputStream in = new FileInputStream("FileName.bin");
ComponentSerializer serializer = new ComponentSerializer();
JFrame myFrame = (JFrame) serializer.read(in);
myFrame.setVisible(true);