1
我連着監聽到殼牌SWT.MouseUp和SWT.MouseDown事件,但是handleEvent方法永遠不會被解僱。我試着點擊窗口上的很多地方,但它沒有得到甚至在下面的代碼中的System.out.println(..)......添加監聽器殼牌SWT.MouseUp不起作用
你在這裏發現任何錯誤?
謝謝!
//c is a Composite.
final Listener l = new Listener(){
public void handleEvent(Event event) {
System.out.println("Got event. "+event);
Rectangle rect = c.getBounds();
if (rect.contains(event.x, event.y)){
if((Boolean)c.getData("selected")){
c.setData("selected", Boolean.FALSE);
}else{
c.setData("selected", Boolean.TRUE);
}
}
}
};
c.getShell().addListener(SWT.MouseUp, l);
c.getShell().addListener(SWT.MouseDown, l);
(此複合材料是使用表單工具包Eclipse編輯器內)
問候,
-Pradyumna
謝謝。我的想法現在..但有沒有我們可以掛鉤一個方式監聽器當事件(如的MouseDown)發生在該複合材料的任何後代是被解僱的複合? – Pradyumna
您可以遍歷組合的getChildren()並將偵聽器添加到每個組合。 –
東西值得一提的可能是''Display.addFilter(。):您收到通知在人機界面的事件循環的任何事件。這並不完全是你所問的,在大多數情況下,這不是正確的做事方式,但在極少數情況下,它非常方便。 –