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());
}
我尝试了上面的代码去特定的行。但它没有工作
答案 0 :(得分:3)
当我输入行号时,如何识别特定行。
我认为你的意思是你想要给定行的文本的偏移量。如果是,请查看Text Utilities中的gotoStartOfLine()
方法。
这就是设置插入符号位置的代码将为您提供行的起始偏移量。然后,您只需添加开始/结束值以获取要突出显示的文本的偏移量。
答案 1 :(得分:1)
请使用javax.swing.text.Utilities课程,尤其是getRowStart(...)
和getRowEnd(...)
方法。