如何更改背景颜色?

时间:2013-07-23 23:59:59

标签: java swing background awt listener

我正在开发一个具有5个不同颜色单选按钮的程序,单击时,背景应更改为相应的颜色。我的背景并没有改变。 我不能为我的生活弄清楚我的代码有什么问题。有人可以帮我找到问题吗?谢谢! 我的代码如下:

public void actionPerformed(ActionEvent e)
{
    if (blue.getState()) f.setBackground(Color.blue);
    else if (red.getState()) f.setBackground(Color.red);
    else if (yellow.getState()) f.setBackground(Color.yellow);
    else if (pink.getState()) f.setBackground(Color.pink);
    else if (gray.getState()) f.setBackground(Color.gray);
} //end of actionPerformed method

public void itemStateChanged(ItemEvent e)
{
}

1 个答案:

答案 0 :(得分:3)

您很可能使用的java.awt.CheckBox组件(来自your earlier question)响应ItemListeners而非ActionListeners。因此,请将代码移至itemStateChanged方法

public void itemStateChanged(ItemEvent e) {

    if (blue.getState()) {
        f.setBackground(Color.BLUE);
    } else if (red.getState()) {
        f.setBackground(Color.RED);
    } else if (yellow.getState()) {
        f.setBackground(Color.YELLOE);
    } else if (pink.getState()) {
        f.setBackground(Color.PINK);
    } else if (gray.getState()) {
        f.setBackground(Color.GRAY);
    }
}
  • 使用大括号分隔范围
  • 请注意使用较新的大写Color常量
  • AWT是一个旧的有限UI库,与较新的轻量级Swing相比,功能丰富。 Swing JCheckBoxes支持ActionListeners