通過使用ObjectInputStream讀取文件中的對象,使用ObjectOutputStream把對象寫入文件,可實現(xiàn)Java swing組件的串行化和讀取。
由于JButton和JTree都已經(jīng)實現(xiàn)了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開發(fā)中的線程安全
- Java Swing中鍵盤事件的處理
- 通過Java Swing看透MVC設(shè)計模式
- Java開發(fā)中的線程安全選擇與Swing