Java Canvas白边

Rot*_*ens 2 java swing awt

所以我想创建一个Canvas基于Java的应用程序.我已经扩展了我的主类,Canvas并在它的构造函数中调整它的大小.

public CanvasApp() {
    Dimension size = new Dimension(640, 480);
    setSize(size);
    setPreferredSize(size);
    setMinimumSize(size);
    setMaximumSize(size);
}
Run Code Online (Sandbox Code Playgroud)

在主函数中,我为它做了一个框架,像这样:

CanvasApp cnv = new CanvasApp();
JFrame frame = new JFrame("");
JPanel panel = new JPanel(new BorderLayout());
panel.setBorder(null); //I've tried this
panel.setSize(640,480); //but still doesn't work =(
panel.add(cnv, BorderLayout.CENTER);

frame.setContentPane(panel);
frame.pack();
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

但内容窗格的大小为650x490.为什么是这样?

我也附上了一张照片.

我画了一条从0,0到640,480的线

ale*_*x.p 5

因为JFrame周围有一个5px的边框,所以看看计算机屏幕上的任何一个框架,你会注意到一种浮雕边框 - 边框的宽度为5像素,在高度和宽度上增加了10个像素.您只将面板指定为640 x 480并将其放入框架内 - 然后框架将其自己的边框添加到框架内.