我正在制作棋盘游戏并且无法移动它们。这件作品将根据骰子结果移动。下面是我尝试做的但它不起作用。(来自button []。addActionListener(new ActionListener())注意:我使用ImageIcon来表示我的作品。有什么帮助吗?
//Puts the player 1 piece on button 1,3,5,7,9 and player 2 piece on button 2,4,6,8,10
if ((btnNumber - 1) < 10)
{
if (((btnNumber - 1) % 2) == 0)
{
buttons[btnNumber - 1].setIcon(piece1);
}
else
{
buttons[btnNumber - 1].setIcon(piece2);
}
}
centerPanel.add(buttons[btnNumber - 1]);
}
frame.add(centerPanel, BorderLayout.CENTER);
答案 0 :(得分:3)
看起来好像还有一些基本的东西还没有完全掌握。以下是一些更接近目标的建议:
button[].addActionListener
是一个荒谬的陈述。您无法一次向整个数组添加动作侦听器。也许您打算说buttons[btnNumber - 1].addActionListener
并将其放在for
循环中。buttons[]==ImageIcon("piece1")
也是一个毫无意义的陈述(它甚至不应该编译)。您可以尝试buttons[btnNumber - 1] == ImageIcon("piece1")
,但有更简单的方法(#3)。piece1Location
和piece2Location
。然后你会立即知道这些部分的位置,并且你的逻辑将简化为if (btnNumber - 1 == piece1Location)
0
开始。使用for
循环在Java中使用数组的最简洁方法是在0
处启动索引变量,并将您的比较从<=
更改为<
。使用以下for(int i = 0; i < 30; i++)
,您无需继续说btnNumber - 1
。