我在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/

10-09 15:54