【问题标题】:How to place Icon on top and bottom of JPanel如何在JPanel的顶部和底部放置图标
【发布时间】:2017-06-19 13:00:39
【问题描述】:

我有一个 JPanel,单击一个按钮后,我希望图标垂直显示在顶部,然后单击底部的第二个图标,依此类推。

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

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

编辑: 例如,

第一次点击后;

第二次点击,

第三次单击,顶部的另一个图标,依此类推。 这样做的目的是添加到我正在创建的国际象棋游戏中。所以我希望死棋出现在适当的玩家一侧(黑色或白色)。黑色棋子位于 JPanel 的顶部,白色棋子位于 JPanel 的底部。希望这可以解决问题。谢谢。

【问题讨论】:

  • 我很难准确地想象你在这里想要做什么。要交换图标,只需在 JLabel 上调用 setIcon(...)。要将 JLabels 放在顶部和底部,请使用 BorderLayout,但同样,我不知道这是否是您要寻找的。请为我们澄清您的问题。
  • @HovercraftFullOfEels 我添加了一些图像作为示例。这个想法是在每个按钮单击后出现一个图标。图标出现的位置必须在 JPanel 的顶部和 JPanel 的底部之间交替。这样做的目的是添加到我正在创建的国际象棋游戏中,因此我希望死棋出现在适当的玩家一侧(黑色或白色)。黑色棋子位于 JPanel 的顶部,白色棋子位于 JPanel 的底部。希望这可以解决问题。谢谢。

标签: java swing layout jpanel


【解决方案1】:

黑色棋子位于 JPanel 的顶部,白色棋子位于 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();

【讨论】:

  • (1+) 你比我更了解这个问题。触摸。
猜你喜欢
  • 1970-01-01
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多