如何在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视觉指南》。