Swing之保存窗口对象XMLEncoder和XMLDecoder 类使用示例
来源:互联网 发布:马云多少钱收购淘宝 编辑:程序博客网 时间:2024/06/11 16:37
XMLEncoder 类是 ObjectOutputStream 的互补替换,可用于生成 JavaBean 的文本表示形式,所使用方式与用 ObjectOutputStream 创建 Serializable 对象的二进制表示形式的方式相同。
XMLDecoder 类用于读取使用 XMLEncoder 创建的 XML 文档,用途类似于 ObjectInputStream。例如,用户可以使用以下代码片段来读取以 XML 文档形式(通过 XMLEncoder 类写入)定义的第一个对象:
例子创建一个JFrame,用XMLEncoder将JFrame对象保存到XML文件中,将保存好的XML文件通过XMLDecoder对象读出并显示JFrame。
XMLDecoder 类用于读取使用 XMLEncoder 创建的 XML 文档,用途类似于 ObjectInputStream。例如,用户可以使用以下代码片段来读取以 XML 文档形式(通过 XMLEncoder 类写入)定义的第一个对象:
例子创建一个JFrame,用XMLEncoder将JFrame对象保存到XML文件中,将保存好的XML文件通过XMLDecoder对象读出并显示JFrame。
import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.XMLDecoder; import java.beans.XMLEncoder; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import javax.swing.AbstractListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; public class JBenchFrame extends JFrame { BorderLayout borderLayout1 = new BorderLayout(); JList list1 = new JList(); JButton fillButton = new JButton(); public static void main(String[] args) throws FileNotFoundException { // JBenchFrame bm = new JBenchFrame(); // // XMLEncoder e = new XMLEncoder( // new BufferedOutputStream( // new FileOutputStream("Test.xml"))); // e.writeObject(bm); // e.close(); XMLDecoder d = new XMLDecoder( new BufferedInputStream( new FileInputStream("Test.xml"))); JFrame result = (JFrame)d.readObject(); d.close(); result.setVisible(true); } public JBenchFrame() { this.getContentPane().setLayout(borderLayout1); this.setSize(new Dimension(400, 300)); fillButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ListData ld = new ListData(); long tmStart = System.currentTimeMillis(); list1.setModel(ld); list1.repaint(); long tmEnd = System.currentTimeMillis(); System.out.println(tmEnd - tmStart); } }); fillButton.setText("Fill"); this.getContentPane().add(new JScrollPane(list1), BorderLayout.CENTER); this.getContentPane().add(fillButton, BorderLayout.SOUTH); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class ListData extends AbstractListModel { String[] strings = new String[10000]; public ListData() { for (int i = 0; i < 10000; i++) { strings[i] = "bob" + i; } } public int getSize() { return strings.length; } public Object getElementAt(int index) { return strings[index]; } }
- Swing之保存窗口对象XMLEncoder和XMLDecoder 类使用示例
- 对象和xml相互转换工具XMLEncoder,XMLDecoder
- XMLDecoder/XMLEncoder
- java.beans包的XMLEncoder和XMLDecoder
- XMLDecoder和 XMLEncoder 的样例
- XMLDecoder和 XMLEncoder 的样例
- 使用XMLEncoder/XMLDecoder和DocumentBuilder实现XML和String互相转换
- 用XMLEncoder和XMLDecoder创建并解析XML文件Java实例
- java.beans包的XMLEncoder和XMLDecoder实现实体与xml转换
- JAVA源码解析(11)-java.beans.XMLEncoder、java.beans.XMLDecoder(一)
- hibernate示例-保存对象
- 窗口类和窗口对象
- 一个使用JAVA xmlencoder 例子
- java--swing--定时器使用示例
- 透明和不规则 Swing 窗口
- 透明和不规则 Swing 窗口
- 透明和不规则 Swing 窗口
- 透明和不规则 Swing 窗口
- ClassWizard
- Swing开发之JEditorPane篇
- EXT2文件系统超级块的初始化(二)
- Java中比对字符串内容的注意点
- cout 格式化输出
- Swing之保存窗口对象XMLEncoder和XMLDecoder 类使用示例
- ext2文件系统的super操作方法
- Swing之 实现阿拉伯语从右到左界面风格
- zoj2833-并查集
- linux终端中输出彩色字体
- EXT2的文件操作方法
- Swing之图片水平翻转、垂直翻转、180度旋转
- 左手IT,右手CT
- Swing之拖动篇:将文本中的内容拖动到表中