首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.pack()做了什么?

.pack()做了什么?
EN

Stack Overflow用户
提问于 2014-04-10 16:10:27
回答 2查看 161.6K关注 0票数 45

我正在学习JPanel和GridLayout,这段代码将产生一个简单的带有6个按钮的JPanel

代码语言:javascript
复制
package testing;


import java.io.*;
import java.util.*;
import java.security.*;
import javax.xml.bind.DatatypeConverter;
import java.lang.*;
import java.awt.*;
import javax.swing.*;

public class Testing 
{

    public static class GridPanel extends JPanel 
    {
        public GridPanel()
        {
            setLayout(new GridLayout(2,3));
            setBackground(Color.GREEN);
            this.setPreferredSize(new Dimension(500,500));

            JButton b1 = new JButton ("Button 1");
            JButton b2 = new JButton ("Button 2");
            JButton b3 = new JButton ("Button 3");
            JButton b4 = new JButton ("Button 4");
            JButton b5 = new JButton ("Button 5");
            JButton b6 = new JButton ("Button 6");

            add(b1);
            add(b2);
            add(b3);
            add(b4);
            add(b5);
            add(b6);
        }

    }



    public static void main(String[] args) 

    {
       GridPanel gp = new GridPanel();
       JFrame jf = new JFrame();
       jf.add(gp);
       jf.pack(); //code wouldnt work if i comment out this line
       jf.setVisible(true);

    }

}

我在想,如果我注释掉jf.pack(),为什么我的代码不能工作

EN

回答 2

Stack Overflow用户

发布于 2014-04-10 16:12:13

pack方法调整框架的大小,使其所有内容都等于或大于它们的首选大小。pack的另一种选择是通过调用setSizesetBounds (这也设置帧位置)来显式地确定帧大小。通常,使用pack比调用setSize__更可取,因为pack让框架布局管理器负责框架大小,并且布局管理器擅长根据平台依赖项和其他影响组件大小的因素进行调整。

来自Java tutorial

当您需要有关任何Java API的其他信息时,还应该参考Javadocs

票数 65
EN

Stack Overflow用户

发布于 2020-06-25 11:06:54

pack()方法是在Java中的Window类中定义的,它调整框架的大小,使其所有内容都等于或大于它们的首选大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22982295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档