【问题标题】:How can I use a listener to change the background color of JFrame (Java)? [closed]如何使用侦听器更改 JFrame (Java) 的背景颜色? [关闭]
【发布时间】:2013-04-13 18:14:42
【问题描述】:

因此,我必须创建一个 GUI,将颜色名称列表作为单选按钮拉出,当您单击按钮时,它会将背景更改为该颜色。问题是,当我点击按钮时,它不会改变颜色。这是我的听众:

ActionListener buttons = new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        setBackground(Color.decode("#" + getColor()));
        repaint();
    }
};

getColor() 返回所选颜色的 6 位十六进制代码。我的实际代码相当冗长乏味(还没有掌握通过循环创建 GUI 组件的窍门,它有 20 个按钮),但我可以根据要求发布它。我相当肯定,问题在于我发布的代码块。

【问题讨论】:

  • 你想改变 Jframe 容器的颜色吗?
  • 我正在尝试更改显示单选按钮的窗口的背景颜色。
  • “我的实际代码相当长” 您的(长)代码无关紧要,但为了尽快获得更好的帮助,请发布SSCCE。将该方法包含在 SSCCE 中的代码行数不应超过 20-50 行。
  • 我的 SSCCE(第一个,如果很糟糕,对不起)作为回复发布
  • “作为回复” 发给哪里或谁?我没有看到 SSCCE。

标签: java swing listener background-color


【解决方案1】:

简单使用:

getContentPane().setBackground(Color.decode("#" + getColor()));

【讨论】:

  • 我试过getContentPane(),没有这样的运气。
  • 您的ActionListener 是否已使用您的按钮注册?发布缩短的sccee 代码版本
  • 我测试了这个建议,发现它有效。请注意,decode() 需要像a0b0c0 这样的“全长”字符串,而不是abc 的常见缩写才能正常工作。
  • @user2302019 使用p1.setBackground(...),因为p1 是您的主面板
猜你喜欢
  • 1970-01-01
  • 2021-07-14
  • 2014-03-22
  • 2020-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多