2013-08-24 27 views
-1

我想創建一個XML編輯器,必須有一個內容助手。我是新來的,所以我的代碼無法正常工作。內容助理在JAVA

我想打字時(「<」之間的單詞和「>」包括「<」和「>」必須是藍色的),我不工作的代碼來改變文字顏色:

textPane.addKeyListener(new KeyAdapter() { 
     @Override 
     public void keyTyped(KeyEvent arg0) { 
      char key = arg0.getKeyChar(); 
      switch(key){ 
      case '<': textPane.setForeground(Color.blue); break; 
      case '>': textPane.setForeground(Color.black); break; 
     } 
    } 

謝謝

+1

「不能正常工作」不是描述性的。你收到的錯誤是什麼? – Jimbo

+0

你確定要重畫框架嗎?無論您對幀中的內容所做的更改在重新繪製幀(或者系統自動刷新顯示)之前都不會生效。 – gparyani

+0

雖然考慮讓你的手'正則表達式'。您使用的方法('KeyListeners')將不起作用,如果有人從其他地方複製內容並將其粘貼到「JTextPane」上,請考慮使用「DocumentFilter」。有關更多信息,請參閱[文本組件功能](http://docs.oracle.com/javase/tutorial/uiswing/components/generaltext.html):-) –

回答

2

你的方法是不行的。您需要使用DocumentAttributeSetDocumentListener類。

DocumentListener教程:http://docs.oracle.com/javase/tutorial/uiswing/events/documentlistener.html

嘗試做一些閱讀,並與有關做法的問題回來。您目前所做的所有工作都將改變整個組件的文本顏色,而不僅僅是尖括號之間的位。

是這部分的任務?對於新編程的人來說似乎有點牽扯。