2011-10-22 112 views
2

這是我的問題。我正在編寫一個語法突出的編輯器。沒有什麼特別的,但它完成了這項工作。問題是我正在實現錯誤識別,並且當我想添加樣式來強調該行時,我重寫了之前的樣式。下面是截圖:將風格附加到JTextPane

true 我做這樣的事情來添加新樣式:如果我使用setCharacterAttributes與最後一個參數false我們

  if(e.getListaErrori().size()>0){ 
       jcb.addItem("ERRORS FOUND"); 
       for(org.univpm.grail.error.Error i:e.getListaErrori()){ 
        jcb.addItem(i.getError()); 
        Element child = root.getElement(i.getLine()-1); 
        styleRoot.setCharacterAttributes(child.getStartOffset(), i.getInstr().length()-1, ta.getStyle("ErrUnder"), true); 
       } 
       jcb.setVisible(true); 
      } 

false 那幾乎是我想要的。我想要有不同顏色的下劃線。我意識到這是不可能的......但是......你認爲有辦法做到這一點嗎?

+0

您可能不得不在屏幕上畫線。 –

+0

你能否指點我一些教程。我發現的只是paintComponent方法的ovverride。 – dierre

回答

3

當我想添加樣式來強調這一行時,我重寫了以前的樣式。

也許不是玩風格,你可以通過使用熒光筆來「突出顯示」文本。 Rectangle Painter顯示如何創建自定義矩形高亮。您應該可以輕鬆更改代碼,只需使用一行高亮。

+0

工作。如果有人需要它,你只需要先用你的背景顏色填充矩形,然後g.draw。 – dierre