输入行号时,在jtextpane中标识行

时间:2013-09-12 03:40:55

标签: java swing jtextpane

           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);
}

当我输入start ndex和end index时,我创建了上面的代码来更改特定单词的forground。但是当我传递行号,start_index和end index时,我需要更改forground。可以帮助我用这个。当我输入行号时,如何识别特定的行。

     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());
     }

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

2 个答案:

答案 0 :(得分:3)

  

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

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

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

答案 1 :(得分:1)

请使用javax.swing.text.Utilities课程,尤其是getRowStart(...)getRowEnd(...)方法。