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() を使用する理由が不思議です。ありがとうございました :)