2014-02-27 40 views
0

我想根據用戶需要將我寫入的文本(和字體顏色)更改爲另一種顏色。如何更改JTextPane中的文本顏色

我做了一個JFrame,並添加了JTextPane。在TextPane的右側,我有一個不同顏色的列表(「白色」,「黑色」,「綠色」等)。 Jframe還有一個JMenuBar,如果用戶突出顯示列表中的其中一個元素(說黑色),我想更改文本窗格的背景顏色(我知道這很愚蠢,但是這是我們老師的任務)

雖然問題是,文字是黑色的,所以當我改變背景顏色時,文字「消失」。當背景顏色設置爲黑色時,我想將文本更改爲白色。

這是一種奇怪的,我可以寫

textPane.setForeground(Color.White) 
在構造

,它工作正常。文本是白色的,(或綠色,或者我選擇的任何顏色) 但是當我將它添加到我的ActionListener中時,它不起作用?我該如何解決它?

這裏是我的代碼:

if (e.getSource().equals(changeColor)) { 
    if (list.getSelectedValue().equals("White")) { 
     textPane.setForeground(Color.BLACK); 
     textPane.setBackground(Color.WHITE); 

    } 
    if(list.getSelectedValue().equals("Black")){ 
     textPane.setForeGround(Color.WHITE); 
     textPane.setBackground(Color.BLACK); 
    } 
} 
+0

http://stackoverflow.com/questions/9650992/how-to-change-text-color- in-the-jtextarea標題是關於'JTextArea',但答案是關於'JTextPane'。看一看。 –

回答

0

嘗試 「重繪」 的textPane

textPane.repaint(); 
textPane.invalidate(); 
+0

非常感謝。有效!我一定會記住這個:) – Zahand

+0

將此標記爲已接受。 :) –