【问题标题】:Binding a padding value to a DoubleProperty将填充值绑定到 DoubleProperty
【发布时间】:2017-04-05 09:38:37
【问题描述】:

在 JavaFX 应用程序中,我试图将填充值设置为 VBox。我写了那个代码:

vBox.setPadding(new Insets(10));

但是使用该代码,我的 vBox 填充有一个 10 像素的“固定”值。即使在调整大小时,我也想将该值链接到场景大小的百分比,而不是那个结果。 我成功获得了我的场景大小的 DoubleProperty,但是如何将它与填充值联系起来? 我认为我的代码可能从以下开始:

vBox.paddingProperty().bind(observable);

但我未能将我的 DoubleProperty 转换为一种用于填充的“可观察”对象。

感谢您的帮助。

【问题讨论】:

    标签: javafx properties padding observable


    【解决方案1】:

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

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

    【讨论】:

    • 很好,它有效。它比我拥有的其他解决方案更容易: widthProperty.addListener((ChangeListener) (arg0, arg1, arg2) -> vBox.setPadding(new Insets((Double)(arg2)*0.01)));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 2014-01-05
    相关资源
    最近更新 更多