Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 选中时的JToggleButton背景色_Java_Swing_Jtogglebutton - Fatal编程技术网

Java 选中时的JToggleButton背景色

Java 选中时的JToggleButton背景色,java,swing,jtogglebutton,Java,Swing,Jtogglebutton,我有一个JTogglebutton,我将初始背景色设置为红色。我有一套动作程序,在红色和深红色之间切换。基本上,如果按钮被选中,它是红色的。未选中,为深红色 代码将运行,但无论何时选择“切换”按钮,它都会显示为白色。所以我在深红色和白色之间切换 redButton = new JToggleButton("", false); redButton.setBackground(Color.decode("#400000")); // Define Actio

我有一个
JTogglebutton
,我将初始背景色设置为红色。我有一套动作程序,在红色和深红色之间切换。基本上,如果按钮被选中,它是红色的。未选中,为深红色

代码将运行,但无论何时选择“切换”按钮,它都会显示为白色。所以我在深红色和白色之间切换

redButton = new JToggleButton("", false);
redButton.setBackground(Color.decode("#400000"));
// Define ActionListener
ActionListener redListener = new ActionListener() {
   public void actionPerformed(ActionEvent actionEvent) {
      AbstractButton abstractButton = (AbstractButton) actionEvent.getSource();
      boolean selected = abstractButton.getModel().isSelected();
      if (selected)
         {
            abstractButton.setBackground(Color.decode("#FF0000"));
         } else { 
            abstractButton.setBackground(Color.decode("#400000"));
        }
      }
    };
redButton.addActionListener(redListener);
add(redButton);
我所做的:我做了大量的代码实验,但一无所获。我在网上做了很多搜索,但没有找到一个有效的例子

我正在使用Java11。我需要在代码中更改什么才能获得我想要的行为

我需要在代码中更改什么才能获得我想要的行为

您试图实现的功能并不代表最终用户最不惊讶的途径。为什么不为每个和状态使用彩色图标呢


我以前试过(红色和深红色PNG文件),结果相同。深红色显示,白色显示而不是红色。由“红色”DYM RGB(255,0,0)(即
Color.red
)显示?这里很好用,我的代码在那里可以用?或者你有有效的代码?如果是的话,请在你的回答中包括它。我很想知道有什么不同。是的,我用的是FF0000,但不管它显示的是白色。好吧,我没有用十六进制数作为颜色,我用的是
color.RED
。不,我没有使用你的(不可编译的(1))代码(代码片段(1)),因为我也不打算对背景色做任何事情。1) 为了更快地获得更好的帮助,请添加或。