0

我正在开发一个具有 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)
{
}
4

1 回答 1

3

您很可能正在使用响应但不响应的java.awt.CheckBox组件(来自您之前的问题) 。因此将您的代码移动到该方法ItemListenersActionListenersitemStateChanged

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常量
  • 与功能丰富的新型轻量级Swing相比,AWT 是一个旧的受限 UI 库。摇摆JCheckBoxes支撑ActionListeners
于 2013-07-24T00:01:18.887 回答