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

如何在SWT ToolItem上检测CTRL+点击事件?

检测SWT ToolItem的CTRL+点击操作

要区分ToolItem的普通点击和CTRL+点击,你可以通过SelectionEvent的stateMask属性判断事件触发时的修饰键状态,具体代码修改如下:

ToolBar toolbar= new ToolBar(parent, SWT.NONE);
ToolItem saveToolItem = new ToolItem(toolbar, SWT.PUSH);
...
saveToolItem.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
    // 判断CTRL键是否被按下
    if ((e.stateMask & SWT.CTRL) != 0) {
        specialSave();
    } else {
        normalSave();
    }
}));

补充说明:

  • stateMask是SWT事件中存储修饰键(如CTRL、SHIFT、ALT等)状态的属性,通过与SWT.CTRL做位与运算,就能准确判断CTRL键是否在点击时被按下。
  • 如果需要跨平台兼容(比如Mac系统常用Command键替代CTRL执行类似操作),可以同时判断SWT.COMMAND:
    if ((e.stateMask & (SWT.CTRL | SWT.COMMAND)) != 0) {
        specialSave();
    }
    

内容的提问来源于stack exchange,提问作者Sadık

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:00:58