【问题标题】:JToggleButton background color when selectedJToggleButton 选中时的背景颜色
【发布时间】:2021-01-19 00:40:34
【问题描述】:

我有一个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);

我做了什么:我用代码做了很多实验,但一无所获。我做了很多互联网搜索,但找不到一个可行的例子。

我使用的是 Java 11。我需要对代码进行哪些更改才能获得我正在寻找的行为?

【问题讨论】:

    标签: java swing jtogglebutton


    【解决方案1】:

    我需要对代码进行哪些更改才能获得我正在寻找的行为?

    您尝试实现的功能并不代表最终用户最不意外的路径。为什么不对normalselected 的每个状态使用彩色图标?

    【讨论】:

    • 我之前尝试过这个(红色和深红色 PNG 文件)并且得到了相同的结果。深红色显示,白色显示而不是红色。
    • 通过“红色”DYM RGB(255,0,0)(即Color.RED)?它在这里工作得很好。
    • 我的代码在那里工作?或者你有有效的代码?如果是这样,请将其包含在您的答案中。我很想知道有什么不同。是的,我使用的是 FF0000,但无论颜色如何,它都显示为白色。
    • 好吧,我没有使用十六进制数字作为颜色,我使用的是Color.RED。不,我没有使用您的(不可编译(1))代码(sn-p(1)),因为我也不打算对背景颜色做任何事情。 1) 为了尽快获得更好的帮助,edit 添加minimal reproducible exampleShort, Self Contained, Correct Example
    猜你喜欢
    • 2011-08-14
    • 1970-01-01
    • 2015-01-09
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多