如何在GWT 1.7中爲事件添加事件監聽器或處理程序?鼠標懸停在GWT 1.7 FlexTable的監聽器?
我知道這裏有一些關於這方面的問題,但看起來他們已經過時了。 例如(忽略CSS中存在懸停的事實)例如,如何向FlexTable添加懸停監聽器?
如何在GWT 1.7中爲事件添加事件監聽器或處理程序?鼠標懸停在GWT 1.7 FlexTable的監聽器?
我知道這裏有一些關於這方面的問題,但看起來他們已經過時了。 例如(忽略CSS中存在懸停的事實)例如,如何向FlexTable添加懸停監聽器?
如果你想一個MouseOverHandler添加到FlexTable試試這個:
public class MyFlexTable extends FlexTable implements MouseOverHandler, HasMouseOverHandler {
public MyFlexTable() {
this.addMouseOverHandler(this);
}
public void onMouseOver(MouseOverEvent event) {
//do something
}
public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) {
return addDomHandler(handler, MouseOverEvent.getType());
}
}
從GWT 1.6開始,您使用Handlers而不是Listeners。例如,爲了懸停,您需要添加一個MouseOverHandler和MouseOutHandler。 FlexTable本身並沒有實現這些接口,因此您可能想要在FlexTable中包含的小部件上實現它。例如,
myWidget.addMouseOverHandler(new MouseOverHandler(){
void onMouseOver(MouseOverEvent event){
doHovering();
}
});
類似地,用於添加MouseOutHandler。
你知道我怎麼能搞定的FlexTable?我發現這個鏈接,但我真的不明白它是如何工作的:http://www.java2s.com/Code/Java/GWT/TableMouseOverEvent.htm – drozzy 2009-11-27 19:20:44
此外,這顯示瞭如何實現這..但我無法將事件投射到生成它的elent:(Label)event.getEventTarget()不起作用! http://code.google.com/webtoolkit/articles/dom_events_memory_leaks_and_you.html – drozzy 2009-11-27 19:47:01
至於在FlexTable上實現此功能,FlexTable不實現這些接口。在您鏈接到的示例中,他們將FlexTable擴展爲Table,然後將處理程序添加到Table中。您可以使用類似的或perphaps將FlexTable與另一個實現HasMouseOverHandler的小部件(例如FocusPanel)進行包裝。至於如何查找事件的目標,MouseOverEvent上沒有getEventTarget方法。發泄目標當然是實現MouseOverHandler的小部件。 – Joel 2009-11-27 22:44:46