为什么我的keyListener在全屏时停止工作?
问题描述:
我通常的方式定义的按键侦听器:为什么我的keyListener在全屏时停止工作?
frame.addKeyListener(this);
frame.setFocusable(true);
和方法来处理按键,这是逃生时被击中的程序退出。
这个工作,但是当我要使JFrame的使用充满整个窗口:
frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
frame.setLocation(0, 0);
frame.validate();
那么关键听众停止工作。有人可以解释为什么这是,当我全屏保持听众时,我需要做什么?
TIA
答
这是逃生时被击中的程序退出。
您可以将Key Bindings添加到您的框架的根窗格。喜欢的东西:
KeyStroke escapeKeyStroke = KeyStroke.getKeyStroke("ESCAPE");
Action escapeAction = new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
// add code to end program
}
};
getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(escapeKeyStroke, "ESCAPE");
getRootPane().getActionMap().put("ESCAPE", escapeAction);
+1
有一个相关的例子[这里](http://stackoverflow.com/a/7457102/230513),演示了'setFullScreenWindow()'和键绑定。 – trashgod
不使用keyListeners,使用键绑定 – kleopatra