繁体   English   中英

使用 HashMap 值更新标签

[英]Updating Label with HashMap value

我有一个问题,将 Label someLabel与一个值绑定。

所以有一个带有 HashMap 字段的类用作库存:

public HashMap<Animals, Integer> inventory = new HashMap<>();

我需要实时显示这个整数值,就像某种计时器一样。

问题是,我试图在标签上使用bind属性,但它只会显示初始值,并且绑定存在一些问题,因为它想要一个SimpleStringProperty类实例作为属性。 当我的get(Object key)方法被调用时,它在我修改后返回一个字符串,并且不会让我这样做......

请指出正确的方向,我是否应该在每次调用put()方法时进行监视,以通过setText()将标签保持在实时状态?

HashMap没有实现Observable

但是 JavaFX 有ObservableMap ,它确实实现了Observable

ObservableMap<Animals, Integer> inventory = FXCollections.observableHashMap();

Label label = ...
Animals key = ...

label.textProperty().bind(Bindings.valueAt(inventory, key).asString());

或更多控制

label.textProperty().bind(Bindings.createStringBinding(() -> Objects.toString(inventory.get(key), "n/a"), inventory);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM