如何让ComboBox使用Object的toString方法而不是将其设置为图形?

时间:2017-11-19 18:47:08

标签: java javafx combobox ellipse

我有Station extends

javafx.scene.shape.Ellipse个对象
public class Station extends Ellipse

我正在尝试将它们放入javafx.scene.control.ComboBox并让ComboBox使用我toString()对象的Station方法,而不是将它们用作图形。< / p>

 ComboBox<Station> metroStationComboBox = new ComboBox<>();
 //ADDS A HASHSET OF THE STATIONS
 metroStationComboBox.getItems().addAll(dataManager.getStations());

我创建了一个单元工厂,当它们未被选中时将使用toString()方法,但只要选择一个,它就会将对象作为图形。:

metroStationComboBox.setCellFactory((ListView<Station> p) -> {
        return new ListCell<Station>(){
            @Override protected void updateItem(Station item, boolean empty) {
                super.updateItem(item, empty);
                if (!empty && item != null) {
                    setText(item.toString());
                    setGraphic(null);
                } else {
                    setText(null);
                }
            }

        };
    });

有没有办法重新定义选择方法,以便我可以使用toString的{​​{1}}方法?

enter image description here

(为清晰起见,上面的代码已经减少了)

0 个答案:

没有答案