SWT 如何有效地从 SelectionListener 访问其他控件

Posted

技术标签:

【中文标题】SWT 如何有效地从 SelectionListener 访问其他控件【英文标题】:SWT how to access efficiently other controls from SelectionListener 【发布时间】:2015-08-10 00:30:36 【问题描述】:

我在ViewPart 上有一个 swt 按钮,并附有MySelectionListener implements SelectionListener 还有一个按钮被禁用。

监听器应该做它的工作,如果工作的返回结果是true,它应该启用另一个按钮。

我的问题是最好的方法是什么?

现在我所做的是将按钮作为构造函数参数传递给“MySelectionListener”,我想还有其他方法可以做到这一点。

另一种选择是创建一个界面

public interface EnableButton()
  void enableButton();

并让View 实现它,然后再次将接口作为构造函数参数传递给“MySelectionListener”... 我也不喜欢这种方法,因为这需要为每次更新或我需要的任何其他任务创建和实现多个接口。

我没有使用任何注入框架

【问题讨论】:

【参考方案1】:

由于您的 selectionListener 似乎只与您的 ViewPart 相关,您可以将其实现为 ViewPart 中的内部类。

或者您将 ViewPart 作为构造函数参数传递给 MySelectionListener。然后让 MySelectionListener.widgetSelected 方法委托给 ViewPart 的一个方法,您可以在其中访问您需要的所有内容,例如按钮。

【讨论】:

以上是关于SWT 如何有效地从 SelectionListener 访问其他控件的主要内容,如果未能解决你的问题,请参考以下文章

如何有效地从 JSON 列中提取字段?

如何有效地从点创建线串?

如何有效地从python中的日期中减去年份?

如何有效地从 php 中的平面结构构建树?

如何有效地从大型数据框字典中提取同一列? (性能警告)

如何有效地从 Pandas 数据框移动到 JSON