繁体   English   中英

如何让JPanel的大小适用于JFrame?

[英]How to make JPanel size apply to JFrame?

我对JPanel的大小没有增加JFrame的大小有疑问。

这是我的代码:

package pong;

import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        
        JPanel p = new JPanel();
        p.setPreferredSize(new Dimension(500, 500));

        frame.add(p);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setVisible(true);
        
        frame.setLocationRelativeTo(null);
    }
}

即使面板的首选尺寸为 500 x 500 像素,框架的显示宽度或高度也很小。

JFrame 的显示宽度或高度很小,

代码应该是:

frame.pack(); // added
frame.setVisible(true);

pack()方法将调用框架使用的布局管理器,所有 Swing 组件将以其首选大小显示。

此外,作为一般规则,不需要手动设置面板的首选大小,因为您将向面板添加组件,因此首选大小应基于您添加到面板的组件。

阅读 Swing 教程中有关使用布局管理器的部分,了解更多信息和示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM