2016-07-25 87 views
0

我有一个按钮的背景颜色有问题。按钮背景颜色变化不起作用

点击后,它会变成我没有在我的代码中指定的颜色。当我将光标从按钮上移开(仍然按住鼠标按钮)时,它会将颜色更改为我在代码中定义的颜色。

我改变颜色与下面的ChangeListener方法:

btn1.getModel().addChangeListener(new ChangeListener() { 
    public void stateChanged(ChangeEvent e) { 
     ButtonModel model = (ButtonModel) e.getSource(); 

     if (model.isRollover()) { 
      btn1.setBackground(new Color(166,166, 166)); 
     } else if (model.isPressed()) { 
      btn1.setBackground(new Color(255, 64, 0)); 
     } else { 
      btn1.setBackground(new Color(201, 201, 201)); 
     } 
    } 
}); 

这里是所有情况下的屏幕截图:

  1. 正常
  2. 哈弗
  3. 点击的(BUG)
  4. 点击并移动从按钮

回答

1

按下一个按钮上方的鼠标光标离开使得模型既武装和压制。只要鼠标保持关闭状态,即使鼠标移动到按钮外,模型仍然会被按下。相反,只有当鼠标在按钮的边界内按下时,模型才会被设置。 ButtonModel

+0

谢谢你的回复。好吧,我明白发生了什么,但我不知道如何应用到代码中。 sth like that is not working 'else if(model.isArmed()){ btn1.setBackground(new Color(255,64,0)); }' –