我试图检测包含多个其他组合的Composite控件上的单击事件。我试过了:
topComposite.addMouseListener(new MouseListener() {
...
@Override
public void mouseUp(MouseEvent arg0) {
logger.info("HERE");
});
});
但是该事件永远不会触发。我假设当鼠标事件发生在孩子身上时,它将沿着链条传播,但是不会发生。我该怎么做呢?
在SWT中,一般规则是事件 不 传播。对此的主要例外是遍历事件的传播-描述起来非常复杂。
最简单的回答你的问题是,你必须将监听器添加到 所有 的你的孩子Composite
- 递归 !
例如这样
public void createPartControl(Composite parent) {
// Create view...
final MouseListener ma = new MouseAdapter() {
@Override
public void mouseDown(MouseEvent e) {
System.out.println("down in " + e.widget);
}
};
addMouseListener(parent, ma);
}
private void addMouseListener(Control c, MouseListener ma) {
c.addMouseListener(ma);
if (c instanceof Composite) {
for (final Control cc : ((Composite) c).getChildren()) {
addMouseListener(cc, ma);
}
}
}
e.widget
如上所示,找到了单击的窗口小部件。一个重要的问题是,如果Controls
以后添加更多内容,请记住再次执行此操作。
希望通过Eclipse RCP应用程序的代码自动触发树selectionChanged事件。任何指针都将不胜感激。
问题内容: 我正在使用事件委托来侦听DOM中较低级的事件,但不适用于选择框上的onchange事件。onchange事件会传播还是冒充DOM? 谷歌搜索未能找到结论性的答案。 问题答案: 根据规范,,,应该气泡和和不应该泡沫。 此行为是正确实现在所有web浏览器除了IE <9,即,,,做适当气泡在IE> = 9。
本文向大家介绍Android事件传递机制,包括了Android事件传递机制的使用技巧和注意事项,需要的朋友参考一下 实验环境 OS X 10.9 Eclipse(ADT) Android源码版本:API Level 19(Android 4.4) Android事件构成 在Android中,事件主要包括点按、长按、拖拽、滑动等,点按又包括单击和双击,另外还包括单指操作和多指操作。所有这些都构成了A
所有,我想检测用户层选择,以便同步我的侧栏与显示的层。 但我在API引用中没有看到任何层控制事件;我如何判断当这样的用户层选择发生了? 作为另一种选择,我查看了layer load和unload事件,但在返回的内容中没有看到任何标识。我是不是错过了?
SWT-"Standard Widget Toolkit",它是一个Java平台下开放源码的Native GUI组件库,也是Eclipse平台的UI组件之一。从功能上来说,SWT与AWT/SWING是基本等价的。SWT以方便有效的方式提供了便携式的 (即Write Once,Run Away)带有本地操作系统观感的UI组件: 由于widget系统的固有复杂性以及平台之间微妙的差异,即使在理想情况下
我正在尝试处理用户的Backspace按键。我有2个处理程序绑定到一个输入元素。由于无法在onChange事件处理程序中检测按键,因此我必须在onKeyDown中进行。我想在按下backspace时停止onChange事件的传播(并在onKeyDown事件处理程序中处理)。有什么想法如何实现这一点?谢谢!