You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过代码向Button组件发送长按事件?

模拟按钮的长按事件

要通过代码触发该按钮的长按事件,有两种直接可行的方式,具体实现如下:

方式一:通过notifyListeners发送长按事件

利用组件的事件通知机制,手动构造并发送SWT.LongPress类型的事件,触发注册的监听逻辑:

// 构造长按事件对象
Event longPressEvent = new Event();
longPressEvent.widget = btn;
longPressEvent.type = SWT.LongPress;
longPressEvent.time = (int) System.currentTimeMillis(); // 设置事件时间戳(符合事件标准属性)

// 发送事件触发长按监听
btn.notifyListeners(SWT.LongPress, longPressEvent);

方式二:直接调用监听实例的处理方法

如果你持有该长按监听实例的引用,可以直接调用其actionPerformed方法:

// 假设你保存了监听实例的引用
ActionListener longPressListener = new ActionListener(){
    @Override
    public void actionPerformed(ActionEvent evt) {
            doSomething();
    }
};
btn.addLongPressListener(longPressListener);

// 直接触发方法
longPressListener.actionPerformed(new ActionEvent(btn, SWT.LongPress, null));

说明

两种方式都能触发doSomething()方法:

  • 方式一更通用,不需要持有监听实例的引用,完全模拟系统触发的长按事件流程;
  • 方式二更直接,适合你能直接访问监听实例的场景。

内容的提问来源于stack exchange,提问作者Daniel Tsai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:02:36