0
           public static void setJTextPaneFont(JTextPane jtp, Color c, int start_index,int end_index) {

    MutableAttributeSet attrs = jtp.getInputAttributes();
    StyleConstants.setForeground(attrs, c);
    StyledDocument doc = jtp.getStyledDocument();
    doc.setCharacterAttributes(start_index, end_index, attrs, false);
}

当我输入开始索引和结束索引时,我创建了上面的代码来更改特定单词的前景。但是现在我需要在传递行号、开始索引和结束索引时更改前景。你能帮我解决这个问题吗.当我输入行号时如何识别特定行。

     public void gotoStartOfLine(JTextComponent component, int line) {
           Element root = component.getDocument().getDefaultRootElement();
           line = Math.max(line, 1);
           line = Math.min(line, root.getElementCount());
           component.setCaretPosition(root.getElement(line - 1).getStartOffset());
     }

我试过上面的代码去特定的行。但它没有工作

4

2 回答 2

3

输入行号时如何识别特定行。

我认为您的意思是您想要给定行的文本偏移量。如果是这样,请查看 Text UtilitiesgotoStartOfLine()中的方法。

那就是设置插入符号位置的代码将为您提供行的起始偏移量。然后,您只需添加开始/结束值以获取要突出显示的文本的偏移量。

于 2013-09-12T03:50:04.563 回答
1

看看使用javax.swing.text.Utilities类,尤其是getRowStart(...)getRowEnd(...)方法。

于 2013-09-12T03:49:15.887 回答