JTextPane DefaultStyledDocument和setEditorKit冲突

时间:2014-01-28 12:37:15

标签: java swing jtextpane defaultstyleddocument

我在一个项目中使用JTextPane,我应该显示行号并为某些关键字着色。为了显示行号,我使用'setEditorKit'并为文本着色,我重写了DefaultStyledDocument的insertString()和removeString()方法,然后使用'JTextPane.setDocument(DefaultStyledDocument_object)'。

我面临的问题是,如果我将EditorKit添加到我的JTextPane,则着色部分不起作用。如果我在设置EditorKit之后添加DefaultStyledDocument,insertString方法会将插入符号移动到“零插入位置”,从而弄乱UI。

这是我想要实现的功能的图像。

What I want这就是我希望JTextPane看起来像的样子。

Mess
这就是目前的样子

如何在我的应用程序中同时使用'setEditorKit'和'DefaultStyledDocument'?

1 个答案:

答案 0 :(得分:0)

不要将行号用作文档的一部分。相反,您应该创建一个显示行号的组件,并将该组件用作滚动窗格的行标题。

有关此方法的示例,请参阅Text Component Line Number