Java 为什么我的JFrame没有调整大小?

Java 为什么我的JFrame没有调整大小?,java,swing,user-interface,jframe,jlist,Java,Swing,User Interface,Jframe,Jlist,我已经用f.setSize()指定了宽度和高度但这没有任何区别 代码如下: public class MTGSAMPServerReference extends JPanel{ public static Toolkit tk = Toolkit.getDefaultToolkit(); static int ScrnWidth = ((int) tk.getScreenSize().getWidth()); static int ScrnHeight = ((in

我已经用
f.setSize()指定了宽度和高度但这没有任何区别

代码如下:

public class MTGSAMPServerReference extends JPanel{

    public static Toolkit tk = Toolkit.getDefaultToolkit(); 
    static int ScrnWidth = ((int) tk.getScreenSize().getWidth());
    static int ScrnHeight = ((int) tk.getScreenSize().getHeight());

    public static void main(String[] args) {
        MTGSAMPServerReference gui = new MTGSAMPServerReference();
        gui.launchFrame();
    }

    public void launchFrame() {
        String[]listContents={"Vehicles","Houses","Companies","Objects","Jobs"};
        JFrame f = new JFrame("MTG SAMP Server Reference");
        JList list1=new JList(listContents);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setVisible(true);
            f.setSize(1200, 800);
            f.setLocationRelativeTo(null);
            f.add(list1);
            list1.setSize(500, 500);
            Container contentPaneMain = f.getContentPane();
            contentPaneMain.add(new MTGSAMPServerReference());
            f.pack();
        }
}

我做错了什么,或者忘记了什么?

您可以使用
pack()
setSize()
我已经使用了这两种方法,并且其他人告诉我,要像我一样将
pack()
放在GUI代码的末尾。但是我缺少什么呢?使用
setSize(400400)
而不是
pack()
。哦,我明白了,我只需要把
pack()
设置大小()之前谢谢@AVD
pack()
应该始终被调用,即使
setSize(..)
是下一条语句。它不仅仅是“设置大小”。