在以下情形中,缺少MouseUp类型的事件。
重现的基础是这段代码(使用rap 3.0)
@Override
protected void createContents(Composite parent) {
GridLayout gl = new GridLayout(1, false);
parent.setLayout(gl);
GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);
Composite above = new Composite(parent, SWT.BORDER);
above.setLayout(gl);
above.setLayoutData(gd);
Button buttonAbove = new Button(above, SWT.TOGGLE);
buttonAbove.setText("above");
Button button = new Button(parent, SWT.TOGGLE);
button.setText("start");
addListener(button);
Composite bottom = new Composite(parent, SWT.BORDER);
bottom.setLayout(gl);
bottom.setLayoutData(gd);
Button buttonBottom = new Button(bottom, SWT.TOGGLE);
buttonBottom.setText("bottom");
}
private void addListener(Button button) {
Listener listener = new Listener() {
@Override
public void handleEvent(Event event) {
switch (event.type) {
case SWT.MouseDown:
System.out.println("MouseDown");
break;
case SWT.MouseUp:
System.out.println("MouseUp");
break;
}
}
};
button.addListener(SWT.MouseDown, listener);
button.addListener(SWT.MouseUp, listener);
}
start
bottom
或复合buttom
,然后释放MouseButton - >类型为SWT.MouseUp
的事件被触发start
上above
上或合成above
上方,然后释放鼠标按钮 - >事件未被解雇我在执行Button的拖放时以更复杂的方式发现了这个问题,这似乎是问题的根源。
在SWT应用程序中,始终抛出MouseUp事件。
这是RAP中的错误吗?