代码中的:
if (offset != endPos) {
改为:
if (offset <= endPos) {
会更好一点。

解决方案 »

  1.   

    楼上说的是。
    SwingUtilities.invokeLater(new Runnable() {
       public void run() {
           MutableAttributeSet attr = new SimpleAttributeSet();
           StyleConstants.setForeground(attr, color);
    StyledDocument doc = (StyledDocument) sourcePane.getDocument();
    doc.setCharacterAttributes(offset, endPos - offset, attr, false);
    上面几句话不怎么理解,帮我解释一下好吗?
      

  2.   

    这是JAVA的消息处理函数 你这个是多线程的吧
    我8个月没动JAVA了建议你去看看 “JAVA2 消息处理函数 ”的一本书。