Java JFrame窗口大小对于屏幕太大?

Java JFrame窗口大小对于屏幕太大?,java,swing,jframe,window,Java,Swing,Jframe,Window,好吧,我几乎一整天都在努力寻找答案,但似乎找不到答案/ 使用JFrame,我一直试图将窗口设置为1920x1080分辨率,但当我尝试这样做时,它似乎将整个屏幕用作窗口,有点像我的屏幕分辨率是1920x1080,但它是3840x2160,这是为什么?当我运行另一个分辨率为1920x1080的应用程序时,它的大小似乎不一样。(它比较小) 当前代码: JFrame frame = new JFrame("Test"); GraphicsDevice gd = GraphicsEnvironment.g

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

使用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(19201080)它仍然使窗口大小相同。我认为由于某些原因,最大值略低于1920x1080。:/有什么想法吗


编辑:似乎使用了
frame.setSize(Toolkit.getDefaultToolkit().getScreenSize())使窗口大小为1536x864,而不是3840x2160,将其设置为高于1536x864没有任何区别,它会说大小更大,但我看不到任何区别,反正它会覆盖屏幕。

尝试使用以下方法,而不是
帧。设置大小(…)


frame.setPreferredSize(新尺寸(19201080))

如果希望框架填充桌面,请使用:

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
这将使框架具有适当的大小,因此不会覆盖任务栏

如果希望框架覆盖屏幕(包括任务栏),则可以使用:

frame.setSize( Toolkit.getDefaultToolkit().getScreenSize() );
frame.setVisible( true );

这是因为您的windows缩放未设置为100%。

frame.setPreferredSize(新维度(19201080))返回宽度为0、高度为0的大小:/@KarimAKL…返回…是什么意思?我的错,我是指使用
System.out.println(frame.getSize())的输出frame.setPreferredSize(新尺寸(19201080))之后的code>是0和0,我已经知道
frame.setExtendedState(JFrame.MAXIMIZED_两者),这不是我想要的。将其设置为屏幕大小也不是我想要的,但我发现了一些有趣的东西,我以前忘了写,看起来工具箱中的屏幕大小是1536x864,而不是3840x2160。(我将在此评论后进行编辑)你知道为什么会这样吗?我发布这篇文章已经有一段时间了,但还是要谢谢你。:)如果我能重新使用Swing,我就得试试这个。