当我再次点击它时,我怎么能改变JButton的原始颜色?

时间:2015-03-25 15:25:55

标签: java user-interface colors jbutton background-color

以下代码是我如何将 JButton 颜色更改为洋红色。我想要做的是当我再次点击同一个按钮时,我希望它恢复到正常颜色。我已经尝试在谷歌搜索,但我似乎无法找到解决此问题的正确答案。如果你们有任何建议请告诉我。谢谢。

    Object source = e.getSource();
    int s=0;

    if (source instanceof Component) {
        ((Component)source).setBackground(Color.magenta);
        s=0;

    }
    </i>

3 个答案:

答案 0 :(得分:1)

boolean switcher = false;
if (source instanceof Component) {
        if(switcher)((Component)source).setBackground(Color.OLDCOLOR);
        else ((Component)source).setBackground(Color.magenta);

        switcher = switcher?false:true;

    }

答案 1 :(得分:1)

立即检查颜色:

if (((Component)source).getBackground().equals(Color.magenta)){
    ((Component)source).setBackground(null);
} else {
    ((Component)source).setBackground(Color.magenta);
    s=0;
}

null将JButton返回到默认颜色

答案 2 :(得分:0)

为什么不实施自己的JButton

public class MyButton extends JButton {

    private Color on;
    private Color off;
    private boolean isOn = false;

    public void setOnColor(Color on) {
        this.on = on;
    }

    public void setOffColor(Color off) {
        this.off = off;
    }

    public void switchColor() {
        if (this.isOn)
            super.setBackground(this.on);
        else
            super.setBackground(this.off);
        this.isOn = !this.isOn;
    }
} 

初始化按钮时

MyButton b = new MyButton();
b.setOffColor(null);
b.setOnColor(Color.MAGENTA);

如果您可以这样做

Object source = e.getSource();

if (source instanceof MyButton) {
    ((MyButton)source).switchColor();
}