【问题标题】:Java Compare two Arrays of Images / Buttons on GridLayout PanelJava比较GridLayout面板上的两个图像/按钮数组
【发布时间】:2012-11-06 04:09:43
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: java arrays image swing shuffle


    【解决方案1】:

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

    Java Swing Shuffle Game

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

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

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

    【讨论】:

    • 我曾想过,我的印象是该构造函数的第一个参数是将显示给用户的文本。另外,如果按钮没有移动,但 imageIcons 是,我不确定这是否仍然有效,因为索引将与按钮而不是图像相关联?
    • @Kairan 它不应该显示对吗?你可以找到隐藏它的方法。也检查 button.setText。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-09-17
      • 2016-08-26
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 2012-06-13
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多