如何解决更新可观察值时的 Javafx Combobox 更新问题
我在 ComboBox
中创建了一个 JavaFx
,如下图所示
然后我选择了一个特定的值,该值显示在按钮单元格中,如图所示。
然后我更新了它的值,所以如果值发生变化,我可以观察到它。但它不显示更改后的值,而是显示一个对象值。
当我再次从下拉视图中选择时,所选值变得正确。
Combobox
的代码是
ComboBox<AspectRatio> aspectRatio = new ComboBox<>();
aspectRatio.setCellFactory(new AspectRatioCellFactory());
aspectRatio.setButtonCell(new AspectRatioCell());
细胞工厂
class AspectRatioCellFactory implements Callback<ListView<AspectRatio>,ListCell<AspectRatio>> {
@Override
public ListCell<AspectRatio> call(ListView<AspectRatio> param) {
return new AspectRatioCell();
}
}
class AspectRatioCell extends ListCell<AspectRatio> {
public AspectRatioCell() {
super();
}
@Override
protected void updateItem(AspectRatio item,boolean empty) {
super.updateItem(item,empty);
if (item == null || empty) {
setText(null);
setGraphic(null);
} else {
setText(item.getAspectRatio());
setGraphic(null);
}
}
}
更新类
private class RefreshButtonListener implements ButtonListener {
@Override
public void onClick() {
theModel.setObservableAspectRatios(theModel.getAllAspectRatio());
theView.clearCombo();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。