这个问题在这里已经有答案了:
使用keylistener或keyboardfocusmanager(2个答案),全屏窗口无法获得键盘输入
三年前关门了。
我在eclipse中构建了一个swing窗口,当它打开时会进入全屏,但是不可能关闭全屏。
我曾尝试在网上搜索(我知道类似的线索),但我遇到的问题时,试图解决。
这是我的jframe
private void initialize()
{
frmCpStats = new JFrame();
frmCpStats.setTitle("CP Stats");
Toolkit tk = Toolkit.getDefaultToolkit();
int x =((int) tk.getScreenSize().getWidth());
int y =((int) tk.getScreenSize().getHeight());
frmCpStats.setExtendedState(JFrame.MAXIMIZED_BOTH);
frmCpStats.setSize(x, y);
frmCpStats.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmCpStats.setUndecorated(true);
KeyStroke k = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
int w = frmCpStats.WHEN_IN_FOCUSED_WINDOW;
dialog.getRootPane().registerKeyboardAction(e -> window.dispose(), k, w);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
StatsDisplay window = new StatsDisplay();
window.frmCpStats.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public StatsDisplay() {
initialize();
}
eclipse识别错误 Cannot be resolved or is not a field
与 VK_ESCAPE
以及 WHEN_IN_FOCUSED_WINDOW
,和 dialog cannot be resolved
与 dialog
. 我对swing的实际工作方式非常陌生,所以我完全不知道为什么会出现这些错误。
2条答案
按热度按时间9jyewag01#
删除这些代码行
hvvq6cgz2#
你就快到了。密钥绑定在这种情况下工作。请注意我的mcve:
好奇你为什么打电话来
window.dispose()
当你要处理的是FRMCPjFrame的时候??