java - 修改键状态

标签 java keyboard swt modifier

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

相关文章:

java - Eclipse SWT 浏览器崩溃(Linux 64 位)

java - SWT 布局问题 - 标签填充可能吗?

java - 列标题与 swt 的组合

java - 更新到 Hibernate 5 后无法访问 TransactionManager 或 UserTransaction

java - Android - 获取键盘按键

java - 从 Jersey 的 URI 获取处理程序?

wpf - 为什么 KeyDown 事件会从 TextBox 冒泡出来?

c# - 更改另一个应用程序的输入语言

java - NEO4j 密码查询匹配相同的单词

java - MySql 中的多个更新语句