【问题标题】: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);