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