java - Java中如何根据屏幕大小改变窗口大小?

标签 java swing

我将窗口大小设置为 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
}

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

我尝试调整参数,发现当高度在 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/

相关文章:

java - Tomcat catalina.out 是 40GB

java - 如何将每个 paintComponent 调用同时写入 BufferedImage?

java - 如何增加 JTextField 中的值

java - 生成高于特定值的 ID

java - 服务器返回 HTTP 响应代码 : 403 for URL: Iam displaying webpage on JEditorPane

java - 防止多个用户执行相同的操作

java - 如何在不隐藏其标签的情况下禁用 JButton?

java - 在 Android OpenGL ES 2.0 中对多个 Sprite 进行动画处理

java - 在install4j中,如何将Java更改为新版本?

java - 无法在 Eclipse 中看到 Spring Starter 项目