好吧,所以我几乎整天都在努力寻找答案,但似乎找不到任何答案。 :/
使用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);
从当前到frame.setSize(1920, 1080);
,它仍然使窗口大小相同。由于某些原因,我认为最大值低于1920x1080。 :/这里有什么想法吗?
编辑:似乎使用frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
使窗口大小为1536x864,而不是3840x2160,将其设置为大于1536x864并没有区别,它会说尺寸更大,但我看不到任何区别,它仍然会覆盖屏幕。
答案 0 :(得分:0)
尝试使用以下内容代替frame.setSize(...)
:
frame.setPreferredSize(new Dimension(1920, 1080));
答案 1 :(得分:0)
如果您希望框架填满桌面,请使用:
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
这将使框架具有适当的大小,因此不会覆盖任务栏。
如果您希望框架覆盖包括任务栏的屏幕,则可以使用:
frame.setSize( Toolkit.getDefaultToolkit().getScreenSize() );
frame.setVisible( true );
答案 2 :(得分:0)
那是因为您的窗口缩放比例未设置为100%。