0
我想bidirectionaly一个color
属性绑定与r
,g
,b
领域,也是一个颜色拾取。以下是我有:复杂性结合
private IntegerProperty r = new SimpleIntegerProperty();
private IntegerProperty g = new SimpleIntegerProperty();
private IntegerProperty b = new SimpleIntegerProperty();
private ObjectProperty<Color> color = new SimpleObjectProperty<>();
ColorPicker colorPicker = new ColorPicker();
// Bind the colorPicker and 'color'
colorPicker.valueProperty().bindBidirectional(color);
现在我需要绑定color
并在r
,g
,b
分裂。我知道我可以像这样的东西(单向)开始:
color.bind(Bindings.createObjectBinding(
() -> Color.rgb(r.get(), g.get(), b.get()),
r, g, b
));
但Java抛出一个异常一个绑定的值不能设置。 是否有另一种方法来做到这一点或应该使用听众? 谢谢!
你的目标是什么?你是否希望能够做到,例如'r.set(128)',并且让'颜色'(以及颜色选择器)更新?如果用户在颜色选择器中选择颜色,是否要'r','g'和'b'更新?我认为你必须至少使用一些听众。 –
@James_D是的,正好。我知道有'r','g'和'b'这样的技巧是有点矫枉过正的,因为我可以通过'color'来获取它们,但我有特殊需求。谢谢,我会尝试与听众。 – Max