转发所有活动

时间:2012-06-12 19:31:03

标签: java swt

我想在SWT中将所有事件从一个窗口小部件转发到另一个窗口小部件。有可能这样做吗?

记录:
我有一个暗背景设置的复选框小部件。在Windows上,实际设置按钮标签的颜色是不可能的,Windows使用黑色,使我的复选框难以辨认。因此,我的解决方案是创建一个没有标签的复选框,并在其旁边放置一个标准的SWT标签。这很有效,直到我尝试点击标签。预期的行为是标签上的单击/悬停与复选框上的单击/悬停相同。

2 个答案:

答案 0 :(得分:1)

我建议您在复选框中添加paintListener,然后在paintControl方法上用原始文本的相同位置重新绘制所需颜色的文字。

这样你就不会有额外的小部件来处理。

编辑: 正如您所说,PaintListener不是一个选项,我建议您将标签监听器添加到要转发到复选框的所有事件。

在复选框上,添加相同的侦听器(不是相同的实例,相同的类型)。

最后,在添加到标签的侦听器上,只需执行

yourCheckBox.notifyListeners( eventType, event );

答案 1 :(得分:0)

您不能只创建一个侦听器实例并将其添加到两个小部件中吗?