繁体   English   中英

如何在JTextPane中更改文本颜色

[英]How to change text color in 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);
    }
}

尝试“重绘” textPane

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM