【问题标题】:how to escape from full screen mode in java?如何在java中退出全屏模式?
【发布时间】:2016-08-06 08:56:34
【问题描述】:

我已使用此代码进入全屏:

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

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

运行程序时,JFrame卡在全屏模式,按escape时无法关闭。因此,我必须重新启动或注销我的计算机才能再次回到正常屏幕。我希望用户能够通过按下“退出按钮”或使用其他组合来关闭它。我该怎么做?

【问题讨论】:

    标签: java swing user-interface jframe


    【解决方案1】:

    您需要为此添加一个keyEventListener,如果您按下了转义键,它将处理框架。之后就不能再使用了。

    full.addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent evt) {
            if(evt.getKeyCode() == KeyEvent.VK_ESCAPE)
                full.dispose();
        }
    });
    

    请记住,框架需要聚焦,否则不会触发事件。

    【讨论】:

      【解决方案2】:

      试试这个

       KeyStroke k = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
       int w = full.WHEN_IN_FOCUSED_WINDOW;
       dialog.getRootPane().registerKeyboardAction(e -> window.dispose(), k, w);
      

      【讨论】:

        猜你喜欢
        • 2023-03-19
        • 2014-12-15
        • 2023-04-05
        • 2014-03-25
        • 2017-11-16
        • 2014-03-07
        • 2012-03-29
        • 1970-01-01
        • 2019-07-23
        相关资源
        最近更新 更多