我将窗口大小设置为 640 x 1136,并在分辨率为 2560 x 1600 的 13 英寸 MBP 上运行该程序。我假设窗口应该能够完全显示显示在我的屏幕上,但它只显示上半部分。
这是我的代码。
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
}
我尝试调整参数,发现当高度在 800 左右时,窗口会超出屏幕。最大窗口高度怎么可能只有屏幕分辨率的1/2?
有没有一种方法可以根据屏幕尺寸自动增大或减小窗口的尺寸,同时保持所有内容的比例?
谢谢!
最佳答案
您必须在运行时获取屏幕尺寸并相应地调整帧尺寸。这将使您的程序在不同的屏幕上看起来相同。
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(dim.width / 2, dim.height / 2);
关于java - Java中如何根据屏幕大小改变窗口大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56621362/