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

时间:2014-12-25 17:31:00

标签: java swing jframe layout-manager

我是初学者,我不知道如何在JFrame中添加更多对象。 如何在JFrame中添加多个JPanel对象? 以下是我的尝试。

感谢您的帮助。

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);
    }

}

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

你只看到一个,因为它相互重叠。只需为您的面板组件提供setbound(x,y,x1,y1),您就会在位置看到您的面板。

或使用setLayout(new FlowLayout());将您的组件分别订购到其他组件,这样您就不会互相覆盖。