1

我在 JPanel 上有一个网格布局,并添加了 JButtons,每个 JButtons 都带有一个图标,并且它们按正确的顺序一起形成了一张图片。

然后我打乱图像数组(它实际上是使用 java 代码裁剪的单个图像并存储在数组中),然后将每个 JButton 图标设置为一个新图像。现在这给了我们一个很好的“拼图”类型的图片,最终用户可以交换瓷砖以将其放回原处。

我唯一的问题是,我不知道如何检查他们是否有 1)将图像放在正确的位置(按钮)和 b)如果所有图像都在正确的位置(按钮),以形成原始图片。

我确实将按钮存储在一个数组中,并将每个图像存储在一个单独的数组中。只有图像被排序,当用户交换两个不同的图块时,只有图像图标被设置。

我的想法是我需要比较 button[0].image == image[0] 等。但是,我不知道该怎么做。

也许我的方法是错误的,还有其他属性或场所可以说服?

4

2 回答 2

1

这是一个Java Swing与您正在开发的简单益智游戏相同的示例。在这里,我使用了数字,但您使用的是图像。

Java Swing 随机播放游戏

您可以使用按钮名称作为索引。

JButton btn[index] = new JButton(index,imageIcon) ;

因此,对于每个移动,您需要检查按钮索引是否有序。如果订购,您的洗牌安排。我希望你能继续前进。玩得开心。

于 2012-11-06T04:24:21.883 回答
0

如果我正在实现这一点,我将保留一个未打乱的图像数组(或列表)以及该数组的索引数组(或列表)。用 初始化第二个数组/列表index[i] = i。然后打乱索引数组/列表。设置 JButton 图标需要额外的间接级别:button[i].setIcon(image[index[i]]). 但它使检查图像是否位于正确位置变得更加容易:if (index[i] == i).

于 2012-11-06T04:12:53.443 回答