我有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}}方法?
(为清晰起见,上面的代码已经减少了)