有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing如何在java中摆脱全屏模式?

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

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

  1. # 1 楼答案

    试试这个

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

    您需要为此添加一个keyEventListener,如果您按了escape,它将处理帧。之后,它将不再可用

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

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