我需要编写一个像 Word 这样的编辑器。它需要支持编辑文件,插入和删除图像和其他一些东西。
我选择 JTextPane 来做这些事情。
我像这样使用 imageIcon 加载和显示图像:
BufferedImage img = ImageIO.read(file);
ImageIcon icon = new ImageIcon(img);
insertIcon(new ImageIcon(img));
我现在面临的问题是如何将图像保存到文件中?我使用 HTMLDocument 和 HTMLEditorKit 来实现 save 方法,主要逻辑如下:
public void saveAs() {
doc = (HTMLDocument) getStyledDocument();
File newFile = new File(path);
FileWriter fw = new FileWriter(newFile);
kit.write(fw, doc, 0, doc.getLength());
fw.close();
}
Kit 和 doc 是我的 Page 类(派生自 JTextPane 的 Page)中的私有成员。在saveAs
方法执行后,保存的文件不包括图像:
<html>
<head>
</head>
<body>
<p style="margin-top: 0">
hello world
</p>
<p style="margin-top: 0">
<p $ename="icon">
</p>
</body>
</html>
从 HTML 文件中我们可以看到image path
没有编码到那里,我想知道如何实现saveAs
支持保存图像的方法?
非常感谢!