我在SWT中有一个小问题(rikiki)...
我正在制作一个扩展org.eclipse.swt.widgets.Composite的小类,该类应该嵌套在RCP应用程序中...
在这个小班上,我有应该响应鼠标或键盘事件的小部件
但
单击或发送键盘事件时,我需要使用修饰键(Shift / Ctrl / Alt / ...)来更改我的成分行为。
问题是我不能只听mod键敲击,因为我的用户可以从我的组件中删除它,然后单击它。
我不能使用显示过滤器来避免干扰嵌套我的组件的外壳。(但如果没有其他解决方案,这可能是我的最后解决方案)
我不能创建一个透明的组件来读取事件并将其分发给我的所有组件,因为它最多与我的组件一样大,并且不会从外壳中获取mod-key罢工,甚至不会从外壳中获取)...
有人知道吗?
最佳答案
或多或少就像
myComponent.add<Any>Listener(new <Appropriate>Listener(){
@Override
public void <AppropriateMethod>(like KeyPress)>(<Appropriate>Event e) {
int stateMask=e.stateMask;
if((stateMask & SWT.ALT)==SWT.ALT){
<Do_appropriate_actions>;
}
if((stateMask & SWT.CTRL)==SWT.CTRL){
<Do_another_appropriate_actions>;
}
if((stateMask & SWT.SHIFT)==SWT.SHIFT){
<Do_an_even_more_appropriate_actions_cause_you_are_kind_of_a_code_roxxor_!>;
}
};
};
希望能帮助到你 ...
关于java - 修改键状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1002004/