【问题标题】:Suppress default double-click event in SWT.CHECK Table抑制 SWT.CHECK 表中的默认双击事件
【发布时间】:2017-04-23 18:14:16
【问题描述】:

我正在使用带有SWT.CHECKSWT.FULL_SELECTION 样式的SWT 表。当用户双击表格行时,我添加了一个 MouseListener 来填充输出组。但是,双击也会切换该行的复选框。虽然我认为这是目标平台(Windows)的预期行为,但我想阻止复选框切换。

是否可以在双击时切换复选框?

【问题讨论】:

  • 那么这是哪个平台?在 Mac 上双击不会切换复选框。
  • Windows 上都不...
  • 我在 Windows 7 上观察到了这种行为。
  • @user1438038 在 Windows 7 上对我来说效果很好。

标签: java checkbox swt mouseevent


【解决方案1】:

我发现,我使用的 Table 实现添加了一个可以切换复选框的 SelectionListener。

当我删除它时,一切都按预期工作:

  Listener[] listeners = table.getListeners(SWT.Selection);

  if (listeners.length > 0) {
     TypedListener typedListener = (TypedListener)listeners[0];

     SelectionListener selectionListener = (SelectionListener)typedListener.getEventListener();

     table.removeSelectionListener(selectionListener);
  }

不是一个干净的解决方案,但由于我知道该对象当时只有一个 SelectionListener,因此以这种方式删除它似乎是合法的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多