【问题标题】:JavaFX bind list size to this.setTitle()JavaFX 将列表大小绑定到 this.setTitle()
【发布时间】:2020-10-26 15:52:06
【问题描述】:

我希望我的笔记程序的标题在我的列表(笔记)更改时更改。为了实现这一点,我想将 IntegerProperty 绑定到列表的大小,但它说:

type属性中的bind(ObservableValue extends Number>)方法不适用于参数(int)

这是否意味着我应该将大小从 int 转换为 Number(尝试过但出现了另一个问题)还是有更简单的解决方案?

public class Notes extends Stage {
    ObservableList<String> notes = FXCollections.observableArrayList();

    public Notes() {
        this.setup();
    }

    private void setup() {
        IntegerProperty size = new SimpleIntegerProperty();
        size.bind(this.notes.size());

        this.setTitle(String.format("Notes (%d)", size.getValue()));

        final Scene scene = new Scene(this.createRootPane());
        this.setScene(scene);
    }
}

【问题讨论】:

标签: java list javafx data-binding observable


【解决方案1】:

只需将您的 title 属性绑定到 list size’s asString 绑定:

titleProperty().bind(Bindings.size(notes).asString("Notes (%d)"));

【讨论】:

    猜你喜欢
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 2021-05-07
    • 2023-03-12
    • 2014-07-05
    • 2018-02-28
    • 1970-01-01
    相关资源
    最近更新 更多