通过使用ObjectInputStream读取文件中的对象,使用ObjectOutputStream把对象写入文件,可实现Java swing组件的串行化和读取。
由于JButton和JTree都已经实现了Serializable接口,因此Java swing组件的串行化和读取是可以做到的。
方法就是使用ObjectInputStream读取文件中的对象,使用ObjectOutputStream把对象写入文件。
如:
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream;import javax.swing.JButton; import javax.swing.JTree; public class Save { public static void main(String[] args) { // Write JButton button = new JButton("TEST Button"); JTree tree = new JTree(); try { ObjectOutputStream outForButton = new ObjectOutputStream( new FileOutputStream("button")); outForButton.writeObject(button); outForButton.close(); ObjectOutputStream outForTree = new ObjectOutputStream( new FileOutputStream("tree")); outForTree.writeObject(tree); outForTree.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // Read try { ObjectInputStream inForButton = new ObjectInputStream( new FileInputStream("button")); JButton buttonReaded = (JButton) inForButton.readObject(); ObjectInputStream inForTree = new ObjectInputStream( new FileInputStream("tree")); JTree treeReaded = (JTree) inForTree.readObject(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } |
【编辑推荐】
- Java Swing开发中的线程安全
- Java Swing中键盘事件的处理
- 通过Java Swing看透MVC设计模式
- Java开发中的线程安全选择与Swing