JFrame仅打开关闭,最小化和调整大小按钮,直到调整窗口大小为止

时间:2019-03-03 01:28:27

标签: java swing jframe

我正在用Java开发游戏,运行代码时游戏窗口无法正确打开。我可以调整它的大小并将其调整为正确的大小,但这每次都很烦人。

这是窗口的代码,我还添加了图片以显示窗口的打开方式。

import javax.swing.*;
import java.awt.*;

public class Window extends Canvas {

    private static final long serialVersionUID = 573860602378245302L;

    public Window(int width, int height, String title, Game game){
        JFrame frame = new JFrame(title);

        frame.setPreferredSize(new Dimension(width, height));
        frame.setMaximumSize(new Dimension(width, height));
        frame.setMaximumSize(new Dimension(width, height));

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(true);
        frame.setLocationRelativeTo(null);
        frame.add(game);
        frame.setVisible(true);
        game.start();
    }
}

enter image description here

1 个答案:

答案 0 :(得分:0)

有几种方法可以制作特定大小的JFrameframe.setPreferredSize()并不是这些方式之一。

您可以像这样在setSize(int width, int height)上致电JFrame

import javax.swing.JFrame;

public class JFrameSize
{
  public static void main(String[] args)
  {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 300);
    frame.setVisible(true);
  }
}

或者您可以设置JPanel的内容的首选大小(在下面的示例中为JFrame),然后像这样在pack()上调用JFrame

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Dimension;

public class JFrameSize2
{
  public static void main(String[] args)
  {
    JPanel panel = new JPanel();
    panel.setPreferredSize(new Dimension(400, 300));

    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(panel);
    frame.pack();
    frame.setVisible(true);
  }
}