如何在Java中根据屏幕大小更改窗口大小?

时间:2019-06-16 18:00:31

标签: java swing

我将窗口的大小设置为640 x 1136,并且我在13英寸的MBP上运行该程序,其分辨率为2560 x1600。我假设窗口应该能够完全显示在我的屏幕上,但只显示上半部分。

这是我的代码。

public static final int WIDTH = 640;  // width of window
public static final int HEIGHT = 1136; // height of window

public static void main(String[] args) {
    JFrame frame = new JFrame();
    World world = new World();
    frame.add(world);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(WIDTH, HEIGHT);
    frame.setLocationRelativeTo(null); 
    frame.setVisible(true); // 1) set window visible 2) paint() asap
    world.action(); // start the program
}

这是我的屏幕上的样子:
enter image description here

我尝试使用这些参数,发现高度在800左右时,窗口将超过屏幕。最大窗口高度如何仅是屏幕分辨率的1/2?

有没有一种方法可以根据屏幕大小自动增加或减小窗口大小,同时又保持所有内容不变?

谢谢!

1 个答案:

答案 0 :(得分:0)

您必须在运行时获取屏幕大小并相应地调整帧大小。这将使您的程序在不同的屏幕上看起来相同。

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(dim.width / 2, dim.height / 2);