这就是我将JFrame设置为全屏模式的方式:
//set full screen
frame.dispose();
frame.setUndecorated(true);
screenDevice.setFullScreenWindow(frame);
frame.setVisible(true);
//reset to window mode
frame.dispose();
screenDevice.setFullScreenWindow(null);
frame.setUndecorated(false);
frame.setVisible(true);
但是,当我显示任何对话框时,如设置对话框,对话框和全屏框架都会丢失其内容并在屏幕上消失。然后我需要单击任务栏图标以获得焦点。
如何解决这个问题?谢谢。
编辑:
假设在这个全屏窗口的菜单栏中有一个JMenuItem,那么我通过单击这样的menuitem来显示设置JDialog:
settingsMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
settingsDialog.showSettingsDialog();
}
});
在全屏模式下,屏幕上不显示settingsDialog和全屏。在窗口模式下它可以正常工作。
答案 0 :(得分:3)
如果您想将JFrame
设置为maximized
,请不要使用此选项:
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
答案 1 :(得分:1)
JFrame frame = new JFrame();
GraphicsDevice window = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0];
//The number in the brackets decides what monitor the window gets "full-screened" to. 0 is the first, 1 is the second, ect.
frame.setUndecorated(true);
window.setFullScreenWindow(frame);
frame.setVisible(true);
frame.requestFocus();