簡體   English   中英

如何在列表和標簽上捕獲雙擊事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM