我的程序加载一个RTF文件,并使用以下代码将其显示在JEditorPane中:
public void ReadFile() {
RTFEditorKit rtfKit = new RTFEditorKit();
StyledDocument doc = (StyledDocument) rtfKit.createDefaultDocument();
rcp.getJEditorPane().setEditorKit(rtfKit);
try {
FileInputStream fi = new FileInputStream("Document.rtf");
rtfKit.read(fi, doc, 0);
rcp.getJEditorPane().setDocument(doc);
} catch (FileNotFoundException e) {
System.out.println("File not found");
} catch (IOException e) {
System.out.println("I/O error");
} catch (BadLocationException e) {
}
}
只要我没有在原始文档中插入任何缩进,项目符号列表或编号列表,一切都很顺利。如果文档确实包含这些元素中的一个,则在JEditorPane中显示时,所有后续文本都会缩进。它在原始RTF文件中写成如下:
我想要的是JEditorPane显示如上所示的文本。相反,它显示在JEditorPane中,如下所示:
任何使用TextArea或TextPane而不是EditorPane的解决方案也足够了。
答案 0 :(得分:0)
我在这里没有得到答案这一事实表明人们无法重现我的错误,这有助于查明问题。
这不是程序的代码,而是我继续编辑导致问题的RTF文档的方式。我正在使用写字板向文档添加缩进,然后我将文档加载到程序中。但是,写字板中的缩进不能正确注册,这就是导致问题的原因。
当我使用the following class直接在程序中编辑RTF文档时,我注意到了这一点。之后保存程序创建了适当的缩进。然后我在Microsoft Word中打开文档并添加了另一个缩进,这也修复了问题,因此通过不使用写字板编辑您希望加载到程序中的RTF文档来解决问题。