我已使用此代码全屏显示:
private void fullScreenPerformed(java.awt.event.ActionEvent evt) {
full = new JFrame();
full.setSize(Toolkit.getDefaultToolkit().getScreenSize());
full.setUndecorated(true);
full.setVisible(true);
}
当我运行程序时,JFrame卡在全屏模式下,当我按下escape时我无法关闭它。因此,我不得不重新启动或退出计算机以重新恢复正常屏幕。我希望用户能够通过按下"转义按钮来关闭它。或使用其他组合。我怎么能这样做?
答案 0 :(得分:1)
您需要为此添加keyEventListener
,如果您已按下转义,则会释放该帧。之后,它将无法再次使用。
full.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent evt) {
if(evt.getKeyCode() == KeyEvent.VK_ESCAPE)
full.dispose();
}
});
请记住,框架需要聚焦,否则事件不会被触发。
答案 1 :(得分:0)
试试这个
KeyStroke k = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
int w = full.WHEN_IN_FOCUSED_WINDOW;
dialog.getRootPane().registerKeyboardAction(e -> window.dispose(), k, w);