Ich habe eine Liste von Mitarbeitern, deren Namen ich in einem Kombinationsfeld rendern muss, damit der Benutzer auswählen kann. Der folgende Code macht die Namen auf der Dropdown-Liste, aber wenn ich einen Namen auswählen, enthält die Combo angezeigten Text die volle POJO Identität, eine Zeichenfolge wie „[email protected]“Rendern eines POJO mit dem Kombinationsfeld von JavaFX 2 ohne die toString() -Methode zu überschreiben
cboEmployees.setCellFactory(new Callback<ListView<Employee>, ListCell<Employee>>()
{
@Override
public ListCell<Employee> call(ListView<Employee> p)
{
return new ListCell<Employee>()
{
@Override
protected void updateItem(Employee item, boolean empty) {
super.updateItem(item, empty);
if (item != null)
{
setText(item.getName());
}
}
};
}
});
Ist Gibt es eine Möglichkeit, dass der angezeigte Text auch den ausgewählten Namen rendert, ohne die toString() - Methode des POJO zu überschreiben?
einwandfrei funktioniert, danke. – etercap
Dies scheint nur zu funktionieren, wenn die ComboBox nicht editierbar ist - für editierbare ComboBoxes folgt das Textfeld (Editor) nicht dem angegebenen Button Cell Renderer - es verwendet weiterhin .toString(). Weiß jemand, wie man das macht? –
Juwel - du hast meinen Tag, wie oft, vielen Dank! Funktioniert wie Charme :) – bully