2017-02-02 77 views
-2

我有一个JPanel,当我点击一个按钮后,我希望图标垂直出现在顶部,然后单击底部的第二个图标,依此类推。如何将图标放在JPanel的顶部和底部

因此,每次点击图标位置在顶部和底部之间交替。

我尝试了许多布局管理器,但似乎无法让它按照我的要求工作。

编辑: 实施例,

第一次点击之后;

After first click

第二次点击,

Second click

第三次点击,上顶侧的另一图标,等等。 这个的目的是添加到我创建的国际象棋游戏中。所以我希望这些死棋片出现在适当的玩家身边(黑色或白色)。黑色棋子到达顶部,白色棋子在JPanel的底部。希望这可以清除它。谢谢。

+1

我有一个艰难的时刻,想象你到底想要做什么。要交换图标,只需在JLabel上调用'setIcon(...)'。要将JLabel放在顶部和底部使用BorderLayout,但是我不知道这是否是您要查找的内容。请为我们澄清你的问题。 –

+0

@HovercraftFullOfEels我添加了一些图像作为例子。这个想法是在每次点击一个按钮后出现一个图标。图标出现的位置必须在JPanel的顶部和JPanel的底部之间交替。这样做的目的是添加到我创建的国际象棋游戏中,所以我希望死棋片出现在适当的播放器端(黑色或白色)。黑色棋子到达顶部,白色棋子在JPanel的底部。希望这可以清除它。谢谢。 – Ma7ot

回答

2

黑色块落在顶部,白色块落在JPanel的底部。

我建议你想嵌套面板而不是使用单个面板。您可以对此使用垂直BoxLayout:

Box deadWhitePieces = Box.createVerticalBox(); 
Box deadBloackPieces = Box.createVerticalBox(); 
Box deadPieces = Box.createVerticalBox(); 
deadPieces.add(deadBlackPieces); 
deadPieces.add(Box.createVerticalGlue()); 
deadPieces.add(deadWhitePieces); 
frame.add(deadPieces. BorderLayout.LINE_START); 

然后,根据需要将标签添加到相应的面板。例如:

deadWhitePieces.add(new JLabel(...)); 
deadWhitePieces.revalidate(); 
deadWhitePieces.repaint(); 
+0

(1+)您比我更了解这个问题。德勤。 –

相关问题