将 JTextPane 内容(图像、表格)保存在文件中
Posted
技术标签:
【中文标题】将 JTextPane 内容(图像、表格)保存在文件中【英文标题】:Save JTextPane contents(Image ,table) in a file 【发布时间】:2016-10-29 13:32:18 【问题描述】:我正在尝试用 Java 制作文本编辑器,但遇到了一些问题。
我可以使用 insertIcon() 将图像添加到 JTextPane,但是当我保存它时,文件是空的,我试图将它保存为 .doc。 当我尝试更改字体时它是一样的,它在 JTextPane 中工作,但是当我保存它的默认字体时,不是我拥有的字体/大小。
这是我的 saveFile 方法:
try
BufferedWriter writer = new BufferedWriter(new FileWriter(filename));
writer.write(text.getText());
writer.close();
saved = true;
catch (IOException err)
err.printStackTrace();
提前致谢:P
编辑:
我正在像这样在我的 JTextPane 中插入图像:
JFileChooser open = new JFileChooser();
open.showOpenDialog(null);
File file = open.getSelectedFile();
Icon image = new ImageIcon(String.valueOf(file));
text.insertIcon(image);
我正在使用上面的 saveFile 方法将 JTextPane 保存到文件中。 图像被添加到 JTextPane 中,一切都很好。但是当我打开文件时,图像不存在。
【问题讨论】:
1) 为了尽快获得更好的帮助,请发帖 minimal reproducible example 或 Short, Self Contained, Correct Example。 2) 例如,获取图像的一种方法是热链接到在this Q&A 中看到的图像。 3) 试试JTextComponent.write(Writer)
这个方法我试过了,但是不行。
当您所做的只是保存文本时,为什么还要保存图像?在这种情况下,图像将如何神奇地写入?
编辑的重点是什么?那个 MCVE 在哪里?投票结束。
如果您需要认真的帮助,请遵循@AndrewThompson 的建议。
【参考方案1】:
您可以在关闭之前尝试刷新 writer。添加行 writer.flush()。这将刷新底层输出流。基本上从这里开始写入文件。
编辑:我测试了代码并将其写入文件。你的问题是字体和你保存之前不一样吗?
【讨论】:
是的,当我插入图片时,它不会保存到文件中。 图片没有保存到文件中?你只是在写文本。要保存整个组件,您必须按照 Andrew 的建议进行操作。这将保存组件的当前状态。而不仅仅是文字。 我试过他说的不行,可能是我没做对吧? text.write(作家);【参考方案2】:您需要使用 EditorKit。明天我会写一个更准确的答案。
【讨论】:
以上是关于将 JTextPane 内容(图像、表格)保存在文件中的主要内容,如果未能解决你的问题,请参考以下文章