Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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对象添加到JFrame中_Java_Swing_Jframe_Layout Manager - Fatal编程技术网

Java将多个JPanel对象添加到JFrame中

Java将多个JPanel对象添加到JFrame中,java,swing,jframe,layout-manager,Java,Swing,Jframe,Layout Manager,我是一个初学者,我不知道如何在JFrame中添加更多的对象。 如何将多个JPanel对象添加到JFrame中? 下面是我试过的 谢谢你的帮助 public class Init extends JFrame{ public Init(){ super("Ball"); Buttons t = new Buttons(); JumpingBall b1 = new JumpingBall(); JumpingBall b

我是一个初学者,我不知道如何在JFrame中添加更多的对象。 如何将多个JPanel对象添加到JFrame中? 下面是我试过的

谢谢你的帮助

public class Init extends JFrame{

    public Init(){
        super("Ball");

        Buttons t = new Buttons();

        JumpingBall b1 = new JumpingBall();
        JumpingBall b2 = new JumpingBall();

        t.addBall(b1);
        t.addBall(b2);

        add(b1);
        add(b2);


        setSize(500,500);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
    }

}

您可以使用
add
方法在
JFrame
中添加许多
JPanel
对象。如果只显示一个,您可能需要更改布局选项或使用布局管理器(查找更多)。

假设
JumpingBall
扩展
JPanel
,您可能需要在此处查看java布局管理器:


JFrame
的默认
Layout
BorderLayout
,如果您没有指定要添加组件的位置,默认情况下
BorderLayout
会将其放在中间。在
BorderLayout
中,同一区域中不能有多个组件。因此,在您的示例中,您的框架中只有第二个
JumpingBall
面板。如果您希望在中心有多个组件,则必须创建一个
JPanel
,并使用不同的布局将这些组件添加到其中。常见的三种布局是
BorderLayout
FlowLayout
GridLayout
。请查看上面提供的链接以了解组件的排列方式。

您只看到一种布局,因为它相互重叠。只需为您的面板组件提供
setbound(x,y,x1,y1)
,您将在该位置看到您的面板


或者使用
setLayout(newflowlayout())它将分别对组件进行排序,这样您就不会相互覆盖。

您应该使用布局。阅读:你的问题是什么?好的,很高兴听到。别忘了,无论你认为哪个答案能更全面地回答你的问题,都要投最好的票。