2017-04-05 61 views
0

在JavaFX应用程序中,我试图将填充值设置为VBox。我写了这样的代码:将填充值绑定到DoubleProperty

vBox.setPadding(new Insets(10)); 

但是有了这段代码,我有一个10px的“固定”值为我的vBox填充。取而代之的是,即使在我调整大小时,我也想将该值与场景大小的百分比相关联。 我成功地获得了我场景大小的DoubleProperty,但是如何将它与填充值相关联? 我觉得我的代码可以通过启动:

vBox.paddingProperty().bind(observable); 

,但我不投我DoubleProperty在一种用于填充“可观察的”对象。

谢谢你的帮助。

回答

1

使用Bindings.createObjectBinding()方法创建自定义对象绑定,然后根据您的百分比DoubleProperty创建Insets

vBox.paddingProperty().bind(Bindings.createObjectBinding(() -> new Insets(percentage.doubleValue()), percentage)); 
+0

好,它的工作原理。而且它比我有其他的解决方案更容易:widthProperty.addListener((的ChangeListener )(为arg0,ARG1,ARG2) \t \t \t \t - > vBox.setPadding(新插图((双人间)(ARG2)* 0.01)) ); –