所以我得到了一个Java作业,制作一个8件拼图,我选择使用JButtons
作为拼贴(不知道这是否可能)。我启动时按钮会以随机顺序出现,但我不知道如何在点击它们时让瓷砖移动。所以我想知道是否有人可以指出我正确的方向?我得出的结论是,我需要使用Actionlistners
,并在这里看到一位老用户在每个按钮上得到Actionlistners
的提示,但我在知道要写什么时遇到问题,并且做了我把它放在另一个班级?
非常感谢任何帮助!
到目前为止的产品:
答案 0 :(得分:1)
为了方便起见,您可以添加透明且无法点击的第九个按钮。每一个人都应该有他的身份,这也会告诉他的位置。
11 12 13
21 22 22
31 32 33
因此,对于每个按钮,您已经分配了他的随机数。就像你使用actionlistners来检测点击了哪个按钮一样。单击时,检查邻居按钮是否透明。如果透明,你会交换那些值,一个会变得可见,另一个是透明的,不可点击。
要获得按钮邻居,您可以使用+和 - 操作。
int leftNeighbour = id - 1;
int rightNeighbour = id + 1;
int topNeighbour = id - 10;
int bottomtNeighbour = id + 10;
我假设所有按钮都保存在一个数组中,所以你就是这样:
for(Button tempButton : Buttons)
{
if(leftNeighbour > 0 && leftNeighbour == tempButton.id) //we check first if button id is OK, then we compere it with tempButtons id
{
int tempButtonValue = tempButton.value;
tempButton.value = currentButton.value;
currentButton.value = tempButtonValue ;
makeButtonTransparent(tempButton);
break; //we found over neighbor so we can stop for loop
}
//then you check conditions for other neighbor id's. Butt first condition is allays different
}
我希望我没有把它复杂化,但这是我在几分钟内得到的想法,当我在思考如何用按钮制作它。可能有一些更好的方法将ID设置为按钮,并检查它们是否是邻居。