gpt4 book ai didi

java - 内存游戏失败

转载 作者:行者123 更新时间:2023-11-30 04:02:03 24 4
gpt4 key购买 nike

我正在尝试制作一个简单的内存游戏。但我不知道如何设置 actionPerformed ,当按下 1 个按钮时,程序会等待另一次单击并检查按钮是否相同?现在,所有代码都会为 but[x] 创建随机点(在其他方法中设置),并且当按下按钮时,按钮会更改为图像以纠正图像

public void actionPerformed(ActionEvent a) {

for(int x = 0; x < 16; x++) {
if(a.getSource() == but[x]) {
but[x].setIcon(imageicon[x / 2]); //Another method creates the imageicons

}

frame.repaint();
}

}

最佳答案

  1. 如果您所做的只是更改 JLabel 或 JButton 的图标,则无需调用 repaint()
  2. 您需要 ActionListener 包含一个变量(可能是 Icon 变量),它保存最后一个按钮 Icon 的值,我们将其称为 lastIcon。它最初的值为 null
  3. 当第一个按钮被按下时,它的图标被显示,它检查lastIcon的值。如果为 null,则它知道这是第一个按钮,并且为 lastIcon 变量分配了其图标的值。
  4. 按下第二个按钮时,它会显示其图标,并与最后一个按钮进行检查。如果相等,则保持两个按钮均显示。如果不相等,它将启动一个 Swing 计时器,将图标重置回默认值。无论哪种方式,它都会将 lastIcon 设置为 null。
  5. 请注意,您不想想要检查一个按钮是否==另一个按钮。您想要比较它们的图标,或者拥有一个与您的 View 不同的单独模型类,并检查这两个按钮在您的模型中是否等效。

关于java - 内存游戏失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21741492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com