JFrame открывает только кнопки закрытия, минимизации и изменения размера, пока я не изменю размер окна - PullRequest
0 голосов
/ 03 марта 2019

Я делаю игру на 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 голосов
/ 03 марта 2019

Есть несколько способов сделать 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);
  }
}

Или вы можете установить предпочтительный размер содержимого (a 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);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...