是否可以将数组中的索引与颜色进行比较?

时间:2018-04-17 12:09:37

标签: java arrays colors rectangles

我正在尝试编写棋盘游戏并使用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);

1 个答案:

答案 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?

希望,我可以帮助你。

相关问题