如何在java中逃离全屏模式?

时间:2016-08-06 08:56:34

标签: java swing user-interface jframe

我已使用此代码全屏显示:

private void fullScreenPerformed(java.awt.event.ActionEvent evt) {

    full = new JFrame();
    full.setSize(Toolkit.getDefaultToolkit().getScreenSize());
    full.setUndecorated(true);
    full.setVisible(true);
}

当我运行程序时,JFrame卡在全屏模式下,当我按下escape时我无法关闭它。因此,我不得不重新启动或退出计算机以重新恢复正常屏幕。我希望用户能够通过按下"转义按钮来关闭它。或使用其他组合。我怎么能这样做?

2 个答案:

答案 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);