我在 SWT 中遇到一个小(rikiki)问题...
我正在创建一个扩展org.eclipse.swt.widgets.Composite的小类,它应该嵌套在RCP应用程序中......
在这个小类(class)中,我有一些应该对鼠标或键盘事件使用react的小部件
但是
当我单击组件或向它们发送键盘事件时,我需要使用修饰键(Shift/Ctrl/Alt/...)来更改组件行为...
问题是我不能只听 mod-key 敲击,因为我的用户可以将其从我的组件中删除,然后单击它...
我无法使用显示过滤器来避免干扰嵌套组件的外壳。(但如果没有其他解决方案,这可能是我的最后一个解决方案)
我无法创建一个透明组件来读取事件并将其分派(dispatch)给我的所有组件,因为它最多与我的组件一样大,并且不会从 shell 获得 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/