2016-07-25 85 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)); }' –