简单地适用于前景:
ObjectProperty op = label.textFillProperty();
ColorPicker cp = new ColorPicker(Color.GRAY);
...
op.bind(cp.valueProperty());
我如何为背景做到这一点 - 由于背景属性的复杂性
,甚至不确定是否可行答案 0 :(得分:4)
首先,不要使用原始类型。您发布的代码应为
ObjectProperty<Paint> op = label.textFillProperty();
ColorPicker cp = new ColorPicker(Color.GRAY);
...
op.bind(cp.valueProperty());
对于背景,您可以使用Bindings.createObjectBinding()
:
ObjectProperty<Background> background = label.backgroundProperty();
background.bind(Bindings.createObjectBinding(() -> {
BackgroundFill fill = new BackgroundFill(cp.getValue(), CornerRadii.EMPTY, Insets.EMPTY);
return new Background(fill);
}, cp.valueProperty());