Java JFrame根据屏幕分辨率resize

我使用myEclipse Matisse创建了java GUI。 当我的屏幕分辨率是1024×768时,它工作正常,但当我更改分辨率时,我的GUI工作不正常。 我希望我的GUI窗口应根据屏幕分辨率重新调整我正在扩展JFrame以创建主窗口。

public class MyClass extends JFrame { //I am putting some controls here. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setBounds(0,0,screenSize.width, screenSize.height); setVisible(true); pack() } 

这不起作用,我做什么,设置大小硬编码或使用ToolKit,帧大小保持不变。

你正在调用pack()来改变框架大小,以便它适合里面的组件。 这就是我认为它缩小的原因。 删除pack()行,它应该工作。

您可以尝试使用它来最大化框架:

 this.setExtendedState(JFrame.MAXIMIZED_BOTH); 

调用pack()对于正常运行的GUI至关重要。 添加完所有组件后调用它,让它validation容器并将其设置为自然大小。

然后调用setSize()setBounds()类的相关方法。

另一种方法是:

 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); pack(); setSize(screenSize.width,screenSize.height); 

试试这个…选择JFrame的所有组件,右键单击,选择“自动resize”,检查水平和垂直,关闭。

调用pack()通常会导致调整窗口大小以适应内容的首选大小。 尝试删除对pack()的调用,看看会发生什么。

首先,setbounds for frame然后删除pack()方法。