11
我有一個僱員的名單,我需要在組合框上呈現給用戶選擇的名稱。下面的代碼將呈現下拉名單上的名字,但是當我選擇一個名字,組合的顯示的文本包含了完整的POJO的身份,一個字符串,如「[email protected]」用JavaFX 2的組合框呈現POJO而不覆蓋toString()方法
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());
}
}
};
}
});
是有沒有辦法讓顯示的文本呈現選定的名稱,而不必重寫POJO的toString()方法?
工作得十分完美,謝謝。 – etercap
這似乎只適用於ComboBox不可編輯 - 對於可編輯的ComboBoxes,TextField(編輯器)不遵守指定的按鈕單元格渲染器 - 它仍然使用.toString()。有人知道怎麼做嗎? –
寶石 - 你讓我的一天,無數次,非常感謝!作品像魅力:) – bully