一次更改所有形状的颜色 JavaFX

Changing all Shape's colors at once JavaFX

我正在编写一个小程序,其中多个 形状 将在 JavaFX 中可见。我正在尝试创建一个按钮,通过它可以将所有形状的颜色更改为用户选择的颜色。

现在,我只能通过在我的 lambda 表达式中单独更改每个形状来做到这一点。目前还可以,因为只有三个形状,但是再多一个就不方便了。谁能想出一种方法将所有形状组合在一起并访问“setFill”方法一次更改所有形状?

代码如下:


// Calling Semi-Circle method 
Arc semicircle1  = shapes1.getsemicircle();

// create Colors button and set is as invisible until a shape value is passed by user
Button buttonColors = new Button();
buttonColors.setText("Choose a color for the Shape");
buttonColors.setVisible(true);
buttonColors.setOnAction( e ->
{    
    if (textField1.getText().equalsIgnoreCase("Grey"))
    {
        label1.setText("Grey");
        semicircle1.setFill(Color.GREY);
    }
});

您可以创建一些 属性 并将所有形状绑定到它

final ObjectProperty<Paint> fillProperty = new SimpleObjectProperty(Color.GREY);
...
semicirle1.fillProperty().bind(fillProperty);
pentagon1.fillProperty().bind(fillProperty);
rectangle1.fillProperty().bind(fillProperty);
...
fillProperty.set(Color.RED);