java - 如何使用 JavaFX 将 Borderpane left 属性绑定(bind)到节点

标签 java javafx

每当整数变量更改时,如何将 borderpane 的 left 属性更改为某个节点?我使用什么类型的 ObjectProperty 以及如何绑定(bind)它以及监听整数变量?

最佳答案

BorderPane border = new BorderPane();
IntegerProperty intProp = new SimpleIntegerProperty();

border.leftProperty().bind(Bindings.createObjectProperty(
    () -> {
        int value = intProp.get();
        Node node = getLeftNodeForValue(value);
        return node ;
    },
    intProp));

其中 getLeftNodeForValue(...) 只是一个为给定整数值检索适当节点的方法。

或者,只需使用监听器而不是绑定(bind):

intProp.addListener((obs, oldValue, newValue) -> 
    border.setLeft(getLeftNodeForValue(newValue.intValue())));

关于java - 如何使用 JavaFX 将 Borderpane left 属性绑定(bind)到节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40728037/

相关文章:

JavaFX 图像缩放和重用

java - 使用 GSON 和 Hibernate Entity 创建自定义 JSON

java - JAXB - 如果为 false,则抑制 boolean 属性

java - 使用反射来使用特定的类构造函数并创建新对象

JavaFX 的工具提示 showDuration 不起作用

java - ComboBox 占位符 NullPointerException JavaFX

java - PS 到 PDF 转换。 GhostScript 异常 - 无法初始化 Ghostscript 解释器。错误代码为-100

java - 更改整个 JFrame 的字体类型和大小?

java - 如何用文件/数据库动态填充 String[] 数组

java - 如何减少或增加方 block ,同时保持其绝对定位?