如何阻止JEditorPane自动缩进后续文本?

时间:2018-05-02 23:09:51

标签: java swing jtextpane

我的程序加载一个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文件中写成如下:

enter image description here

我想要的是JEditorPane显示如上所示的文本。相反,它显示在JEditorPane中,如下所示:

enter image description here

任何使用TextArea或TextPane而不是EditorPane的解决方案也足够了。

1 个答案:

答案 0 :(得分:0)

我在这里没有得到答案这一事实表明人们无法重现我的错误,这有助于查明问题。

这不是程序的代码,而是我继续编辑导致问题的RTF文档的方式。我正在使用写字板向文档添加缩进,然后我将文档加载到程序中。但是,写字板中的缩进不能正确注册,这就是导致问题的原因。

当我使用the following class直接在程序中编辑RTF文档时,我注意到了这一点。之后保存程序创建了适当的缩进。然后我在Microsoft Word中打开文档并添加了另一个缩进,这也修复了问题,因此通过不使用写字板编辑您希望加载到程序中的RTF文档来解决问题。