我的应用程序的主要形式有BorderLayout,并将图片列表添加到其中心。用户可以在列表上滚动查看图片。如果用户双击列表,则删除列表并添加标签,并将当前图片缩放为屏幕大小,并通过标签的setIcon()方法显示。
然后,如果用户在标签上单击,则显示下一张图片。如果用户双击标签,则删除标签并重新添加列表。
如何在列表和标签上捕获双击事件?
谢谢, 威廉
答案 0 :(得分:1)
您需要避开actionPerformed
,因为在第一个指针释放时会立即调用它。
我们正在考虑添加更多内置手势(例如双击),所以这实际上是一个很好的时间来问这个问题。现在唯一的方法是覆盖释放的指针,并在第一次释放时创建一个UITimer(例如300ms),如果发生另一个指针释放,取消计时器并调用"双击"事件。定时器代码只需调用" tap"事件
E.g:
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();
}
}
};