2016-08-04 141 views
2

我想使按鈕在按下時高亮顯示,在按下按鈕時高亮顯示(?)。現在我已經通過覆蓋Button的子類中的按下的功能來實現按下的部分,並且通過覆蓋兩個已發佈的功能來實現按下的部分。但是,我有一個問題,即當您按下按鈕時,拖動鼠標並將其釋放到按鈕外部,按鈕將保持突出顯示。我想嘗試通過覆蓋dragFinished來做同樣的事情,但這並沒有爲我工作,所以我正在尋找另一種方式。如何更改按鈕邊界外按鈕的樣式

@Override 
public void pressed(){ 
    super.pressed(); 
     Style style = getParent().getStyle(); 
     style.setBorder(Border.createLineBorder(1, 1416152)); 
     updateParentStyle(style); 
} 

@Override 
public void released(){ 
    super.released(); 
     Style style = getParent().getStyle(); 
     style.setBorder(Border.createEmpty()); 
     updateParentStyle(style); 
} 
+0

你能表現出一定的代碼是什麼你到目前爲止嘗試過嗎? – ventiseis

+0

我添加了代碼,但上面的代碼實際上已經可以工作了...我更關注的是我可以用來處理拖放問題的新策略,因爲我對整個API不太熟悉。我試着用pointerDragged做與上面完全相同的事情,但它沒有效果。我也試過用dragFinished,但我沒有訪問該功能。 – efshung

回答

1

你不需要那樣做。

只是覆蓋按鈕的「按下」狀態the theme有不同的邊界,是「正確的方式」或可替代你做了什麼通風格:

myButton.getPressedStyle().setBorder(Border.createLineBorder(1, 1416152)); 
myButton.getUnselectedStyle().setBorder(Border.createEmpty()); 
myButton.getSelectedStyle().setBorder(Border.createEmpty());