2016-08-04 86 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());