gpt4 book ai didi

JavaFX:使用对象属性的组合框

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:53 27 4
gpt4 key购买 nike

假设我有一个类:

public class Dummy {
private String name;
private String someOtherProperty;

public String getName() {
return name;
}
}

我有一个这个类 ArrayList<Dummy> dummyList; 的 ArrayList

我可以创建一个带有对象名称属性的 JavaFX ComboBox 作为选择选项,而不使用对象名称创建一个新的 ArrayList<String> 吗?

伪代码:

ObservableList<Dummy> dummyO = FXCollections.observableArrayList(dummyList);
final ComboBox combo = new ComboBox(dummyO); // -> here dummyO.name?

(可选)理想情况下,虽然应该显示名称,但在选择选项时,combo.getValue()应该向我返回所选虚拟的引用,而不仅仅是名称。这可能吗?

最佳答案

您可以使用自定义 cellFactory 以适合您需要的方式显示项目:

ComboBox<Dummy> comboBox = ...

Callback<ListView<Dummy>, ListCell<Dummy>> factory = lv -> new ListCell<Dummy>() {

@Override
protected void updateItem(Dummy item, boolean empty) {
super.updateItem(item, empty);
setText(empty ? "" : item.getName());
}

};

comboBox.setCellFactory(factory);
comboBox.setButtonCell(factory.call(null));

关于JavaFX:使用对象属性的组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41201043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com