Java JFrame 内部大小

Java JFrame inner size

如何使内部尺寸为 500x500 像素?

或者我应该为 windows 硬编码 28px macOS 顶栏吗?

我的简单代码:

import javax.swing.JFrame;

public class Hello {

    public static void main(String[] args) {
        JFrame frame = new JFrame();

        frame.setSize(500, 500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);

        frame.setVisible(true);
    }
}

不要设置 JFrame 大小。使用 JPanel 并将其添加到 JFrame 并设置 JPanel 的大小。

JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(500,500));
frame.add(panel);
frame.pack();
frame.setLocationRelativeTo(null); // centers on screen.
frame.setVisible(true);

如果要扩展 JPanel,最好通过覆盖以下内容来设置大小:

@Override
public Dimenison getPreferredSize() {
   return new Dimension(500,500);
}

JPanel(s) 而不是 JFrame 内进行大多数布局,尤其是绘画也被认为是最佳做法。