如何在JTextPane中更改文本颜色

时间:2014-02-27 15:13:10

标签: java

我想根据用户的需要将我写的文字(和字体颜色)更改为其他颜色。

我制作了一个JFrame,并添加了JTextPane。在TextPane的右侧,我有一个不同颜色的列表(“白色”,“黑色”,“绿色”等)。 Jframe还有一个JMenuBar,如果用户突出显示列表中的一个元素(Say Black),我想更改textpane的背景颜色(我知道这很愚蠢,但这是我们老师的一项任务)

问题是,文字是黑色的,所以当我改变背景颜色时,文字“消失”。我想在背景颜色设置为黑色时将文本更改为白色。

有点奇怪,我可以写

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);
    }
}

1 个答案:

答案 0 :(得分:0)

尝试“重新绘制”textPane

textPane.repaint();
textPane.invalidate();