Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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中向一个JFrame添加2个或多个对象?_Java_Swing_Object_Jframe - Fatal编程技术网

如何在Java中向一个JFrame添加2个或多个对象?

如何在Java中向一个JFrame添加2个或多个对象?,java,swing,object,jframe,Java,Swing,Object,Jframe,我试着看了看,但没有任何问题是有帮助的。 以下是我的代码: Player player = new Player(); Block1 block1 = new Block1(); JFrame ow = new JFrame(); ow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ow.setSize(500,500); ow.setTitle("My Game"); ow.setVisi

我试着看了看,但没有任何问题是有帮助的。 以下是我的代码:

    Player player = new Player();
    Block1 block1 = new Block1();
    JFrame ow = new JFrame();
    ow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    ow.setSize(500,500);
    ow.setTitle("My Game");
    ow.setVisible(true);
    ow.setLocation(400, 100);
    ow.add(block1);
    ow.add(player);
但它只会添加最后一个,有人说(当我搜索旧问题时)它会删除前一个,因为它们都在同一个位置。 所以我这样修改它:

    JPanel jp = new JPanel();
    jp.setSize(500, 500);
    Player player = new Player();
    Block1 block1 = new Block1();
    JFrame ow = new JFrame();
    jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS));
    jp.add(player);
    jp.add(block1);
    ow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    ow.setSize(500,500);
    ow.setTitle("My Game");
    ow.setVisible(true);
    ow.setLocation(400, 100);
    ow.add(jp);
它确实起了作用,使它们都可见,但。。。它有点像两个方形面板,所以我不能用我的
播放器靠近
block 1
。 有什么帮助吗?

JFrame默认使用。如果不指定组件的放置位置,它将被放置在
BorderLayout.CENTER
中。不能将两个或多个零部件放在同一位置。为了防止这种不希望出现的行为,您必须设置不同的约束

例如:

jframe.add(someComponent, BorderLayout.LINE_END);//constraint indicating position
阅读教程中的更多内容:

如果此布局不符合您的需要,请尝试使用其他LayoutManager或将其混合使用


查看

ow.add(someComponent,BorderLayout.SOUTH)
尝试使用不同的布局来满足您的需要您所说的所有内容都无效:(你能给我们一张它应该是什么样子的图吗?我仍然不知道你想要做什么,但它就像两个不同的屏幕,我没有让玩家靠近block1。你希望你的屏幕是什么样子?如果你想要一个接一个的,你可以使用
FlowLayout
也尝试过,但不起作用。我希望它是一个屏幕但有多个对象。你能写一个像我这样的简单代码吗?假设播放器和block1已经发布了。@user3220493我没有得到你想要的。如果你使用了正确的布局或它们的组合,你肯定能达到你想要的效果,请看一下《LayoutManager视觉指南》。