需要调整JPanel的大小来填充JFrame窗口

时间:2017-05-31 15:52:25

标签: java swing layout-manager

我有一个JPanel,它包含我计算机科学课程中游戏项目的主菜单屏幕。 MainMenu类创建一个面板,其中包含一个用于启动游戏的按钮以及一个背景图像。但是,当我将面板添加到父JFrame(在OgGui类中定义)时,框架顶部和面板/背景图像开始的位置之间大约有一厘米的空间。

有谁知道如何用图像填充框架窗口?

//Creates parent JFrame to hold all game components
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class OgGui extends JPanel{

   public static void main(String[] args){
      JFrame frame = new JFrame ("OG Ball");
      boolean start=true;
      MainMenu mainm=new MainMenu();
      while (start==true) {
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setSize(400, 600);
          frame.setVisible(true);
          frame.add(mainm);
          start=mainm.returnscreen();
      }
      frame.add(new Draw());
      //frame.pack();
   }
}

MainMenu

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JButton;

public class MainMenu extends JPanel{

   //Creates JFrame and menu background
   JPanel main = new JPanel();
   ImageIcon icon = new ImageIcon("og.png");
   JLabel menu = new JLabel(icon);

   //Sets up button to begin play
   JButton startBtn = new JButton();

   boolean gamestart;

   public MainMenu(){
      startBtn.setSize(4, 4);
      startBtn.setVisible(false);
      startBtn.addActionListener(new startScreen());

      main.add(menu);
      main.add(startBtn);
      main.revalidate();
      this.add(main);
   }

   public boolean returnscreen() {
   return gamestart; }

    private class startScreen implements ActionListener{
        public void actionPerformed(ActionEvent event){
            gamestart=false;
        } 
    }        
}

0 个答案:

没有答案