我想根据用户的需要将我写的文字(和字体颜色)更改为其他颜色。
我制作了一个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);
}
}
答案 0 :(得分:0)
尝试“重新绘制”textPane
textPane.repaint();
textPane.invalidate();