Java 包装()元';t包装正确

Java 包装()元';t包装正确,java,swing,jframe,jpanel,layout-manager,Java,Swing,Jframe,Jpanel,Layout Manager,我这里有一个JFrame: import javax.swing.JFrame; public class Game extends JFrame { private static final long serialVersionUID = -7919358146481096788L; Arena a = new Arena(); public static void main(String[] args) { new Game(); }

我这里有一个JFrame:

import javax.swing.JFrame;

public class Game extends JFrame {
    private static final long serialVersionUID = -7919358146481096788L;
    Arena a = new Arena();
    public static void main(String[] args) {
        new Game();
    }
    private Game() {
        setTitle("Insert name of game here");
        setLocationRelativeTo(null);
        setLayout(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        add(a);
        pack();
        setResizable(false);
        setVisible(true);
    }
    private void refresh() {

    }
}
竞技场
是一个JPanel:

import java.awt.Dimension;

import javax.swing.JPanel;

public class Arena extends JPanel {
    private static final long serialVersionUID = 6499922741928110264L;
    byte[][] world = new byte[6000][2000];
    int blockPix = 20;
    int x = 2999 * blockPix, y = 999 * blockPix;
    public Arena() {
        setLayout(null);
        setMinimumSize(new Dimension(600, 600));
        setMaximumSize(new Dimension(600, 600));
        setPreferredSize(new Dimension(600, 600));
    }
}

然而JFrame的大小最终是0乘0

也许你可以设置大小(600600)在构造函数中执行所有其他修复的位置?

应删除指令
setLayout(null)
游戏中
构造函数中。

如果删除
pack()
调用,它能工作吗?永远不要使用空布局管理器!为什么不呢?我总是这样。这是一个游戏。请看:不,因为框架的标题栏和所有的装饰都包含在内,它根本不起作用。