我正在尝试使用 GUI 的 NetBeans IDE 在 Java 中制作国际象棋游戏,但我无法使棋子停留在棋盘上方,当我尝试时,棋盘就会被推开。我对这两个图像都使用了标签。如何让棋子停留在棋盘上方而不将棋盘作为背景? (窗口的右侧将有棋盘和一个信息面板,例如计时器之类的东西,所以我不想让棋盘图像成为整个框架的背景)
最佳答案
您可以尝试很多事情。
你可以...
将棋子标签添加到棋盘标签上。这将允许您将片段“覆盖”在各个单元上。这需要您为单元格使用布局管理器,例如 GridBagLayout 之类的东西,因为它会自动将组件置于其父级空间的中心。
你可以...
使用JLayeredPane
(使用诸如GridBagLayout
之类的东西),将允许您将一个面板覆盖在另一个面板之上。
底层将是一个 JPanel
,其中包含板的每个单元,顶层将是一个透明的 JPanel
,其中包含所有部分
这变得更加复杂,因为您需要设计某种方法来填充“碎片”层的空白空间。
两个层都将根据您的需要使用 GridBagLayout
或 GridLayout
...
你可以......
使用单个容器和 GridBagLayout
。这将允许您同时将两个组件添加到布局内的同一(虚拟)单元格。
这变得有点棘手,因为您需要管理组件的 z 深度以确保组件布置在板的顶部。
关于java Netbeans IDE - 覆盖图像(棋盘-棋子),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22289157/