[英]How to convert SWT events? Why does SWT notifyListeners method expects event type argument?
為什么org.eclipse.swt.widgets.Widget#notifyListeners(int, Event)
方法需要單獨的事件類型參數? 它不是已經包含在Event
參數中了嗎? 如果它們不一致,該怎么辦?
我可以使用另一個ID重新發送同一事件嗎?
假設我希望發送SWT.OpenDocument
作為對SWT.MouseDoubleClick
響應
public void handleEvent(Event event) {
if (event.type == SWT.MouseDoubleClick) {
notifyListeners(SWT.OpenDocument, event);
}
}
如果您查看Widget#notifyListeners(int, Event)
並遵循對Widget#sendEvent(int, Event, boolean)
的方法調用,則可以看到以下內容:
void sendEvent (int eventType, Event event, boolean send) {
if (eventTable == null && !display.filters (eventType)) {
return;
}
if (event == null) event = new Event ();
event.type = eventType;
event.display = display;
event.widget = this;
if (event.time == 0) {
event.time = display.getLastEventTime ();
}
if (send) {
sendEvent (event);
} else {
display.postEvent (event);
}
}
如您所見, Event
為您“填充”,因此不可能有干擾/矛盾的事件類型。
在任何情況下, notifyListeners
將使用您在notifyListeners
方法調用中指定的事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.