Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPanel无法获取给定的大小_Java_Swing_Jframe_Jpanel - Fatal编程技术网

Java JPanel无法获取给定的大小

Java JPanel无法获取给定的大小,java,swing,jframe,jpanel,Java,Swing,Jframe,Jpanel,我制作了一个JPanel,并为它分配了大小。但分配的大小不起作用。我想不出代码有什么问题?我只得到了JFrame。为什么会这样?请帮忙 // Frame.java package game; import java.awt.GridLayout; import javax.swing.JFrame; import game.graphics.Screen; public class Frame extends JFrame{ p

我制作了一个JPanel,并为它分配了大小。但分配的大小不起作用。我想不出代码有什么问题?我只得到了JFrame。为什么会这样?请帮忙

    // Frame.java
    package game;
    import java.awt.GridLayout;
    import javax.swing.JFrame;
    import game.graphics.Screen;
    public class Frame extends JFrame{  
        public Frame() 
        {
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setTitle("SNAKE");
            setResizable(false);
            setVisible(true);
        }   
        public void Init()
        {
            setLayout(new GridLayout(1,1,0,0));     
            Screen s = new Screen();
            add(s);
            pack();     
            setLocationRelativeTo(null);        
        }   
        public static void main(String[] args)
        {
            new Frame();
        }
    }
    //Screen.java
    package game.graphics;
    import java.awt.Dimension;
    import javax.swing.JPanel;
    public class Screen extends JPanel {

        public static final int WIDTH = 800, HEIGHT = 800;
        public Screen()
        {
            setPreferredSize(new Dimension(WIDTH, HEIGHT));
        }
    }

//这是一个解决方案

您需要在某处调用
Init()
方法,将
屏幕
添加到
框架
。感谢它的工作。
import java.awt.Dimension;
import javax.swing.JPanel;
import java.awt.GridLayout;
import javax.swing.JFrame;
public class Frame extends JFrame{  
    public Frame() 
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("SNAKE");
        setResizable(false);
        setVisible(true);
    }   
    public void Init()
    {
        setLayout(new GridLayout(1,1,0,0));     
        Screen s = new Screen();
        add(s);
        pack();     
        setLocationRelativeTo(null);        
    }   
    public static void main(String[] args)
    {
        Frame f = new Frame();
        f.Init();
    }




public class Screen extends JPanel {

    public static final int WIDTH = 1000, HEIGHT = 800;
    public Screen()
    {
        setPreferredSize(new Dimension(WIDTH, HEIGHT));
    }
}
  }