Java 如何在JTextPane中更改文本颜色

Java 如何在JTextPane中更改文本颜色,java,Java,我想根据用户的需要将我写的文本(以及字体颜色)更改为另一种颜色 我制作了一个JFrame,并添加了JTextPane。在文本窗格的右侧,我有一个不同颜色的列表(“白色”、“黑色”、“绿色”等)。Jframe还有一个JMenuBar,如果用户突出显示列表中的一个元素(比如黑色),我想更改textpane的背景色(我知道这很愚蠢,但这是老师的作业) 问题是,文本是黑色的,所以当我改变背景颜色时,文本“消失”。当背景色设置为黑色时,我想将文本更改为白色 有点奇怪,我会写 textPane.setFor

我想根据用户的需要将我写的文本(以及字体颜色)更改为另一种颜色

我制作了一个JFrame,并添加了JTextPane。在文本窗格的右侧,我有一个不同颜色的列表(“白色”、“黑色”、“绿色”等)。Jframe还有一个JMenuBar,如果用户突出显示列表中的一个元素(比如黑色),我想更改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);
    }
}
尝试“重新绘制”文本窗格

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

标题是关于
JTextArea
,但答案是关于
JTextPane
。看一看,非常感谢。成功了!我一定会记住这一点:)