我正在尝试编写棋盘游戏并使用for循环创建了棋盘。现在我可以点击一个矩形,并能够改变它的颜色。现在我想把它放在哪里,如果我点击一个特定颜色的矩形将其更改为特定颜色。例如,如果它是蓝色,则将其变为灰色。但是我收到了错误Unlikely argument type for equals(): Color seems to be unrelated to Rectangle
而我的方块变黑了。这是我的代码。谢谢。
public void game (MouseEvent eventGame) {
for(Rectangle r: rectangles) {
if (r.equals(Color.BLUE)) {
r.setOnMouseClicked(event->{
r.setFill(Color.GREY);
});
} else { r.setOnMouseClicked(event->{
r.setFill(Color.BLACK);
});}
}
}
我还应该在创建数组时提到我这样做:r.setFill(Color.BLUE);
。
答案 0 :(得分:2)
致电
r.equals(Color.BLUE)
您正在尝试将矩形实例与Color类型进行比较。查看Rectangle的API,其equals-method描述如下:
检查两个矩形是否相等。 当且仅当参数不为null并且是与此Rectangle具有相同的左上角,宽度和高度的Rectangle对象时,结果才为真。
相反,您需要通过调用
来比较矩形的实际颜色r.getFill()。等于(Color.WHITE)
(见帖子Can you return the color of a rectangle object in java?)
希望,我可以帮助你。