一次更改所有形状的颜色 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);
我正在编写一个小程序,其中多个 形状 将在 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);