我在JPanel上有一个gridlayout,并且每个JButtons都添加了一个图标,并且按照正确的顺序将它们组合在一起。
然后我将图像数组(它实际上使用java代码裁剪成单个图像并存储在数组中)进行混洗,然后将每个JButton图标设置为新图像。现在,这给了我们一个很好的“拼图”类型的图片,最终用户可以交换瓷砖以便按顺序重新设置。
我唯一的问题是,我不知道如何检查他们是否有1)将图像放在正确的位置(按钮)和b)如果所有图像都在正确的位置(按钮),以形成原始图片。
我将按钮存储在一个数组中,并将每个图像存储在一个单独的数组中。只有图像被排序,并且当用户交换两个不同的图块时,只有图像图标被设置。
我的想法是我需要比较按钮[0] .image == image [0]等。但是,我不知道该怎么做。
也许我的方法是错误的,还有其他属性或场所可供使用?
答案 0 :(得分:1)
以下是与您正在开发的简单益智游戏的Java Swing
示例。这里我使用了数字,但你使用的是图像。
您可以使用按钮名称作为索引。
JButton btn[index] = new JButton(index,imageIcon) ;
因此,对于每次移动,您需要检查按钮索引是否已订购。如果订购,您的洗牌安排。我希望你能继续前进。玩得开心。
答案 1 :(得分:0)
如果我实现这个,我会将一个未组合的图像阵列(或列表)以及索引的数组(或列表)保存到该数组中。使用index[i] = i
初始化第二个数组/列表。然后随机播放数组/索引列表。设置JButton图标需要额外的间接级别:button[i].setIcon(image[index[i]])
。但它更容易检查图像是否位于正确的位置:if (index[i] == i)
。