为什么要多次包装?

时间:2012-08-12 03:07:02

标签: java pack

public PenApp() {
    super("PenApp");
    pack();
    setVisible(true);
    setVisible(false);
    pack();
    setResizable(false);
    pack();
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    setLocation((d.width - CANVAS_SIZE) / 2, (d.height - CANVAS_SIZE) / 2);
    setSize(CANVAS_SIZE + getInsets().left + getInsets().right,
        CANVAS_SIZE + getInsets().top + getInsets().bottom);
    addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {System.exit(0);}
    });

    img = Toolkit.getDefaultToolkit().getImage
        (getClass().getResource("penguin.gif"));
    img2 = Toolkit.getDefaultToolkit().getImage
        (getClass().getResource("kuwa.gif"));
    enableEvents(AWTEvent.MOUSE_EVENT_MASK);
    x = getInsets().left;
    y = getInsets().top;

    setVisible(true);
}
像这样的一段代码。我只是想知道为什么在这里使用几个pack()和setVisible()。 谢谢:))

1 个答案:

答案 0 :(得分:0)

我们将商品放在容器内,我们可以通过setSize或pack设置尺寸。包装是优选的,因为它的尺寸使框架的尺寸达到或超过其优选尺寸; pack离开框架布局管理器负责框架大小。

由于我们将一些GUI元素设置为不可见,因此我们不需要空格,所以也许这就是为什么它被一次又一次地使用。我会通过评论其间的所有包来运行该应用程序,并验证它是否确实是必要的。