Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SWT KeyUp事件侦听器未命中键_Java_Swt_Keylistener - Fatal编程技术网

Java SWT KeyUp事件侦听器未命中键

Java SWT KeyUp事件侦听器未命中键,java,swt,keylistener,Java,Swt,Keylistener,我有以下代码: display.addFilter(SWT.KeyUp, new Listener() { public void handleEvent(Event e) { System.out.println("Released " + e.character); } }; 当我同时按下“a”、“s”、“d”和“f”键时,KeyDown事件按预期工作。但是,当我同时释放所有键时,我希望输出如下: 发布 释放 释放d 释放f 但事实并非如此。打印出来

我有以下代码:

display.addFilter(SWT.KeyUp, new Listener()
{
    public void handleEvent(Event e)
    {
        System.out.println("Released " + e.character);
    }
};
当我同时按下“a”、“s”、“d”和“f”键时,KeyDown事件按预期工作。但是,当我同时释放所有键时,我希望输出如下:

发布 释放 释放d 释放f

但事实并非如此。打印出来的通常只有一个字符,例如:

释放d

为什么它会跳过其他两三个项目呢?

这是一个问题

错误50020-按键释放无法正常工作
在以下情况下,KeyReleased似乎发射不正确或根本不发射: 连续按下并按住几个键。一个接一个,钥匙 他们被释放了。keyReleased事件激发,但event.character始终是 按下的最后一个键。如果释放最后按下的键,则所有 其他按键在释放时不会触发释放事件

该错误可能永远无法修复(bugtracker条目中的注释#1):

评论#1
这是一个非常老的错误,我们可能不会修复。问题是 窗口中没有足够的信息来计算密钥 这是在WM_键中按下的