将样式附加到JTextPane

时间:2011-10-22 12:29:51

标签: java swing jtextpane

这是我的问题。我正在编写一个语法高亮的编辑器。没有什么花哨但它能完成这项工作。问题是我正在实现错误识别,当我想添加样式以强调该行时,我正在覆盖我以前的样式。这是一个截图:

true 我正在做这样的事情来添加新风格:

            if(e.getListaErrori().size()>0){
                jcb.addItem("ERRORS FOUND");
                for(org.univpm.grail.error.Error i:e.getListaErrori()){
                    jcb.addItem(i.getError());
                    Element child = root.getElement(i.getLine()-1);
                    styleRoot.setCharacterAttributes(child.getStartOffset(), i.getInstr().length()-1, ta.getStyle("ErrUnder"), true);
                }
                jcb.setVisible(true);
            }

如果我使用setCharacterAttributesfalse的最后一个参数,我们有:

false 那就是几乎我想要的东西。我想要一个不同颜色的下划线。我意识到这是不可能的......但是......你觉得有办法吗?

1 个答案:

答案 0 :(得分:3)

  

当我想添加样式以强调该线条时,我将覆盖以前的风格。

也许您可以使用荧光笔“突出显示”文字,而不是使用样式。 Rectangle Painter显示了如何创建自定义矩形突出显示。您应该能够轻松更改代码,只需使用行突出显示。