如何使我的GUI框架更大?

use*_*312 1 java canvas jframe

问题是,我无法使其成为800x600的维度.换句话说,当我运行程序时,框架太小了,我无法用它做任何事情.

如何使框架更大?

我已经设置了首选大小并设置了画布边界.

那有什么问题呢?

public class GameCanvas extends Canvas
{
    private BufferStrategy buffer = null;

    public GameCanvas() 
    {
        setBounds(0, 0, 800, 600);
        setIgnoreRepaint(true);

        addKeyListener(new KeyInputHandler());

        requestFocus();     
    }

    public void addNotify()
    { 
        super.addNotify();
        this.createBufferStrategy(2);
        buffer = this.getBufferStrategy();

        setBounds(0, 0, 800, 600);
    }
}

public class GameGuiFrame extends JFrame
{
    private JPanel panel = new JPanel();
    private GameCanvas canvas = new GameCanvas();

    public GameGuiFrame()
    {
        this.setName("My Game");

        this.pack();
        this.setResizable(false);
        this.setVisible(true);

        panel = (JPanel) this.getContentPane();
        panel.setPreferredSize(new Dimension(750,500));
        panel.setLayout(null);
        panel.add(canvas);
    }
}

public class GameManager
{
    public static void runGameLoop()
    {
        GameGuiFrame container = new GameGuiFrame();

        container.addWindowListener(new WindowAdapter() 
        {
            public void windowClosing(WindowEvent e) 
            {
                System.exit(0);
            }
        });
    }
}

public class Main
{
    public static void main(String [] args)
    {
        GameManager.runGameLoop();
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

设置内容窗格的首选大小后,尝试打包Frame .