swing - JFrame不显示实际大小

时间:2012-09-07 14:01:41

标签: java swing jframe

我是java的新手。我不知道我的画架有什么问题。我将大小设置为300和200。 我所看到的是一种简短而肥胖的东西。

以下是我的代码:

import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.JFrame;

public class BicycleDemo extends JFrame {
    /**
     * The serialVersionUID.
     */
    private static final long serialVersionUID = -4541236176053545919L;

    public static void createGUI () {
            JFrame jFrame = new JFrame("JFrame Demo");
            jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            Container container = jFrame.getContentPane();
            container.setLayout(new FlowLayout());
            container.setBackground(Color.BLACK);

            jFrame.setSize(300, 200);
            jFrame.setResizable(false);
            jFrame.pack();
            jFrame.setVisible(true);
    }

    public static void main(String[] args) {
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                 public void run() {
                      createGUI ();
                 }
            });
    }
}

请帮忙。

1 个答案:

答案 0 :(得分:1)

您正在呼叫pack()pack()方法将帧的大小调整为可能的最小大小以容纳所有元素。因此,实际上您将大小设置为200 x 300,然后使用pack()再次调整帧大小。

请注意,“保留所有元素”是根据其首选大小计算的,在很多情况下可能只有0x0像素。