Java JFrame根据屏幕分辨率调整大小

时间:2011-07-21 13:51:04

标签: java swing user-interface

我使用myEclipse Matisse创建了java GUI。当我的屏幕分辨率为1024x768时,它工作正常,但当我更改分辨率时,我的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,帧大小保持不变。

7 个答案:

答案 0 :(得分:28)

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

this.setExtendedState(JFrame.MAXIMIZED_BOTH);

答案 1 :(得分:15)

您正在调用pack(),它会更改帧大小,使其适合内部组件。这就是我认为它缩小的原因。删除pack()行,它应该可以正常工作。

答案 2 :(得分:5)

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

然后致电setSize()&之后的相关方法如setBounds()

答案 3 :(得分:5)

另一种方法是:

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

答案 4 :(得分:1)

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

答案 5 :(得分:-1)

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

答案 6 :(得分:-4)

首先,set的setbounds然后删除pack()方法。