关于Java:如何更改大量矩形的颜色?

How to change the color of a large quantity of Rectangles?

因此,我有一个由289个矩形组成的大网格(17x17),当我单击每个人的颜色时,我需要一些方法来改变它们的颜色,而不必使用289个不同的事件方法。矩形根据以下样式着色:

1
2
3
4
5
6
7
8
9
10
11
if(y%2==0){
    if(x%2==0)
        g2.setColor(Color.WHITE)
    else
        g2.setColor(Color.BLUE)
}else{
    if(x%2!=0)
         g2.setColor(Color.WHITE)
    else
         g2.setColor(Color.RED)
}

除了为每个矩形及其颜色(例如{{0,0,Color.WHITE},{x,0,Color.BLUE }...等等};)。我将使用for循环使用其参数创建每个矩形,但是我不知道如何创建ArrayList和Event方法来检测单击了哪个矩形(如果有)。我该怎么办?

编辑:
我是说,我怎么知道单击了哪个矩形,以便可以更改其颜色?如果使它变得更容易,则适用于具有两个玩家(红色和蓝色)的游戏。该板是使用上面的脚本制作的。当某种颜色的玩家单击空白时,棋盘会将矩形颜色更改为玩家的颜色,这就是我的麻烦所在。我从不知道玩家何时单击矩形之一。

如何知道玩家单击矩形的时间以及如何更改矩形的颜色?


在构造每个组件时将相同的MouseListener实例添加到每个组件中。这里有一个示例,当按下鼠标时会更改圆圈的颜色。

附录:GridButtonPanel根据您的修订问题,显示组件如何知道其自己的坐标,以及如何根据其网格坐标引用组件。

a