我正在制作棋盘游戏,无法移动它们。棋子将根据骰子结果移动。以下是我尝试执行的操作,但它不起作用。(来自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);
最佳答案
似乎有些基本的东西您尚未掌握。以下是一些接近目标的建议:
button[].addActionListener
是一个荒谬的陈述。您不能一次将动作侦听器添加到整个数组。也许您是想说buttons[btnNumber - 1].addActionListener
并将其放在for
循环内。 buttons[]==ImageIcon("piece1")
也是无意义的语句(甚至不应该编译)。您可以尝试buttons[btnNumber - 1] == ImageIcon("piece1")
,尽管有一种更简单的方法(#3)。 piece1Location
和piece2Location
。然后,您将立即知道片段的位置,并且您的逻辑将简化为if (btnNumber - 1 == piece1Location)
0
开始。在Java中使用for
循环处理数组的最干净方法是也从0
启动索引变量,并将比较从<=
更改为<
。使用以下for(int i = 0; i < 30; i++)
,您不必一直说btnNumber - 1
。