将JavaFX中的ColorPicker绑定到标签背景属性

时间:2015-11-30 13:26:19

标签: javafx background color-picker

简单地适用于前景:

    ObjectProperty op = label.textFillProperty();
    ColorPicker cp = new ColorPicker(Color.GRAY);   
    ...             
    op.bind(cp.valueProperty());

我如何为背景做到这一点 - 由于背景属性的复杂性

,甚至不确定是否可行

1 个答案:

答案 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());