[英]how to catch double-click event on the list and on the label
我的應用程序的主要形式具有BorderLayout,並且在其中心添加了圖片列表。 用戶可以在列表上滾動以查看圖片。 如果用戶雙擊列表,則會刪除列表並添加標簽,並且當前圖片將縮放為屏幕尺寸,並通過標簽的setIcon()方法顯示。
然后,如果用戶單擊標簽,則顯示下一張圖片。 如果用戶雙擊標簽,則將刪除標簽,並重新添加列表。
如何在列表和標簽上捕獲雙擊事件?
謝謝威廉
您將需要避免actionPerformed
因為它將在第一個指針釋放時立即調用。
我們正在考慮添加更多內置手勢(例如,雙擊),因此實際上是詢問此問題的好時機。 現在,唯一的方法就是覆蓋釋放的指針,並在第一個釋放時創建UITimer(例如持續300ms),如果發生另一個釋放的指針,取消計時器並調用“雙擊”事件。 計時器代碼可以僅調用“ tap”事件。
例如:
List l = new List(...) {
private UITimer timer;
public void pointerReleased(int x, int y) {
super.pointerReleased(x, y);
if(timer == null) {
timer = UITimer.timer(300, false, getComponentForm(), () -> {
singleTapEvent();
timer = null;
});
} else {
timer.cancel();
timer = null;
doubleTapEvent();
}
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.