首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JTextPane 内容的保留:图文格式保存的解决

2013-10-17 
JTextPane 内容的保存:图文格式保存的解决一般而言,JTextPane的getText只能得到String,不能对文字的式,和

JTextPane 内容的保存:图文格式保存的解决

一般而言,JTextPane的getText只能得到String,不能对文字的格式,和里面的图文进行保存

使用HTMLEditorKit可以保存文字的格式,在JTextPane中没有图片的时候,这种方式很方便和简单,核心代码可见writeHtml方法,从实现来说就是将JTextPane中的Document对象使用HTMLEditorKit的write写到文件中即可。


但对于复杂的JTextPane来说,图片及其他各种各样的格式非常常见,杀手锏只有一种方法就是序列化,关于这点的核心代码可以见saveAsObj和ReadFromObj方法,即写的时候直接使用ObjectOutputStream的writeObject方法就可以了,而读先从ObjectInputstream中readObject中读出对象,然后使用docTextPane.setStyledDocument(doc);Validae()即可在界面上展示出来。

 

        public void saveAsObj() {try {File writeF = new File("D://share/tesss_obj");if (!writeF.exists()) {writeF.createNewFile();}StyledDocument doc = (StyledDocument) docTextPane.getDocument();FileOutputStream fos = new FileOutputStream("D://share/tesss_obj");ObjectOutputStream oos = new ObjectOutputStream(fos);oos.writeObject(doc);oos.flush();oos.close();} catch (IOException e) {e.printStackTrace();}}public void readFromObj() {try {File writeF = new File("D://share/tesss_obj");if (!writeF.exists()) {return;}FileInputStream fis = new FileInputStream("D://share/tesss_obj");ObjectInputStream ois = new ObjectInputStream(fis);StyledDocument doc = (StyledDocument) ois.readObject();ois.close();docTextPane.setStyledDocument(doc);validate();} catch (Exception e) {e.printStackTrace();}}





热点排行