我正在根據它們的位置對線的某些部分進行着色。基於位置的着色字
使用的庫是Swing。 組件是JTextPane。
StyledDocument doc = editorJTextPane.getStyledDocument();
Style styleRed = editorJTextPane.addStyle("Red", null);
StyleConstants.setForeground(styleRed, Color.red);
StyleConstants.setBold(styleRed, rootPaneCheckingEnabled);
Style styleGreen = editorJTextPane.addStyle("Green", null);
StyleConstants.setForeground(styleGreen, Color.green);
StyleConstants.setBold(styleGreen, rootPaneCheckingEnabled);
String[] allLines = editorJTextPane.getText().split("\n");
int offSet1 = 0;
int offSet2 = 5;
for(int i=0; i<allLines.length; i++)
{
line = allLines[i];
lineLength = line.length() + 1;
doc.setCharacterAttributes(offSet1, 4, editorJTextPane.getStyle("Red"), true);
doc.setCharacterAttributes(offSet2, 15, editorJTextPane.getStyle("Green"), true);
offSet1 = offSet1 + lineLength;
offSet2 = offSet2 + lineLength;
}
當任一線路, doc.setCharacterAttributes(OFFSET1,4,editorJTextPane.getStyle( 「紅」),TRUE); 或 doc.setCharacterAttributes(offSet2,15,editorJTextPane.getStyle(「Green」),true);
被評論,它正在工作。當兩者同時存在,我得到的錯誤, 異常在線程 「AWT-EventQueue的-0」 顯示java.lang.NullPointerException 在javax.swing.text.DefaultStyledDocument.setCharacterAttributes(DefaultStyledDocument.java:507)
像要知道它是不是setCharacterAttributes在循環?
感謝
謝謝,Hovercrft充滿鰻魚 – user1162286
爲了更好地幫助,請發佈[SSCCE](http://sscce.org/)。 –
你在哪裏定義'doc',你在哪裏定義'editorJTextPane'?從錯誤中可以看出問題是未初始化的對象... – apnorton