我正在用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();
}
}
答案 0 :(得分:0)
有几种方法可以制作特定大小的JFrame
。 frame.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);
}
}