這可能只是ComboBox未正確或完全初始化的問題。我從不使用ComboBoxes「開箱即用」。我使用幾行代碼來設置它們。
以下是從初始化()方法的代碼片段在我的對話控制器類(在此組合框將顯示機構對象的列表):
// this first line gets the data from my data source
// the ComboBox is referenced by the variable 'cbxInst'
ObservableList<Institution> ilist = Institution.getInstitutionList();
Callback<ListView<Institution>, ListCell<Institution>> cellfactory =
new Callback<ListView<Institution>, ListCell<Institution>>() {
@Override
public ListCell<Institution> call(ListView<Institution> p) {
return new InstitutionListCell();
}
};
cbxInst.setCellFactory(cellfactory);
cbxInst.setButtonCell(cellfactory.call(null));
cbxInst.setItems(ilist);
的關鍵點,這裏有:
爲了完整起見,這裏是該機構的ListCell實例被創建的私有成員類:
private final class InstitutionListCell extends ListCell<Institution> {
@Override
protected void updateItem(Institution item, boolean empty){
super.updateItem(item, empty);
if (item != null) {
this.setText(item.getName());
} else {
this.setText(Census.FORMAT_TEXT_NULL);
}
}
}
如果你要初始化你的組合框以類似的方式,它可能是你的問題將被解決。
它是運行時還是編譯錯誤? –
運行時,編譯時甚至沒有警告 – billdoor
你使用'StringConverter'嗎? –