JFrame窗口大小对于屏幕来说太大



好吧,我几乎一整天都在努力寻找答案,但似乎找不到。:/

使用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%。

相关内容

  • 没有找到相关文章