Java在GridLayout Panel上比较两个图像/按钮阵列

时间:2012-11-06 04:09:44

标签: java arrays image swing shuffle

我在JPanel上有一个gridlayout,并且每个JButtons都添加了一个图标,并且按照正确的顺序将它们组合在一起。

然后我将图像数组(它实际上使用java代码裁剪成单个图像并存储在数组中)进行混洗,然后将每个JButton图标设置为新图像。现在,这给了我们一个很好的“拼图”类型的图片,最终用户可以交换瓷砖以便按顺序重新设置。

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

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

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

也许我的方法是错误的,还有其他属性或场所可供使用?

2 个答案:

答案 0 :(得分:1)

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

Java Swing Shuffle Game

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

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

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

答案 1 :(得分:0)

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