好吧,我几乎一整天都在努力寻找答案,但似乎找不到。:/
使用JFrame,我一直试图将窗口设置为1920x1080分辨率,但当我尝试这样做时,它似乎将我的整个屏幕用作窗口,有点像我的屏幕分辨率是1920x1080,但它是3840x2160,为什么会这样?当我运行另一个具有1920x1080分辨率窗口的应用程序时,它的大小似乎不一样。(较小(
当前代码:
JFrame frame = new JFrame("Test");
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
int width = gd.getDisplayMode().getWidth();
int height = gd.getDisplayMode().getHeight();
frame.setSize(width, height);
System.out.println(width+" "+height);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
它的输出是一个覆盖我屏幕的窗口,在某些部分有点关闭,然后在控制台中显示3840 2160
。如果我更改frame.setSize(width, height);
从当前到CCD_ 3,它仍然使窗口具有相同的大小。由于某种原因,我认为最大值略低于1920x1080。:/有什么想法吗?
编辑:似乎使用frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
使窗口大小为1536x864,而不是3840x2160,将其设置为高于1536x8640没有任何区别,它会说大小更大,但我看不出有任何区别,反正它覆盖了屏幕。
如果您希望框架填充桌面,请使用:
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
这将使框架具有适当的大小,这样它就不会覆盖任务栏。
如果你想让框架覆盖屏幕,包括任务栏,那么你可以使用:
frame.setSize( Toolkit.getDefaultToolkit().getScreenSize() );
frame.setVisible( true );
尝试使用以下内容而不是frame.setSize(...)
:
frame.setPreferredSize(new Dimension(1920, 1080));
这是因为您的窗口缩放没有设置为100%。