0

这就是我将 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();
    }
});

在全屏模式下,设置对话框和全屏未显示在屏幕上。在窗口模式下它可以正常工作。

4

2 回答 2

3

如果你想设置你JFrame为什么maximized不使用这个:

frame.setExtendedState(Frame.MAXIMIZED_BOTH); 
于 2012-09-02T05:03:17.170 回答
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();
于 2012-12-31T15:00:07.867 回答