我使用带有自定义标题栏和自定义缩放器的未装饰JFrame。所有的工作正常,但是当我做一个JFrame undecorated时,我失去了Windows的左/右键绑定的支持(似乎它本地实现的Windows)。我想为我的应用程序重新实现此功能。我的问题:我可以在关键侦听器中检测是否按下了Windows键,但我无法检测到另一个键(在我的情况下为左/右)是否与Windows键一起按下(InputEvent中没有修饰符WINDOWS_MASK_DOWN)。可能有人知道一个解决方法?在未装饰的JFrame中支持Windows-Left和Windows-Right
这里是我的代码:
import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class HeadlessFrameTest {
public static void main(String[] args) {
final JFrame frm = new JFrame("Test");
final JTextField field = new JTextField();
frm.add(field, BorderLayout.NORTH);
field.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
System.out.println(e);
}
});
frm.setUndecorated(true);
frm.setSize(500, 550);
frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frm.setVisible(true);
}
}
+1'(InputEvent中没有修饰符WINDOWS_MASK_DOWN).'按下右/左键(在JDK7中)时,即使为keyReleased事件生成事件,也不会生成事件。这告诉我Windows正在拦截事件。奇怪的是,右键/左键功能不起作用,因为Windows +向上键最大化窗口,尽管Windows +向下不会恢复窗口。所以肯定存在不一致。我不知道解决方案。 – camickr 2014-10-06 18:49:05
这有什么更新?我有同样的问题,我正在寻找解决方案。 – Sebastian 2016-09-12 13:48:17