2016-01-21 73 views
1

我在名为choiceBoxPizza的JavaFx应用程序中有一个ChoiceBox。ChoiceBox未在JavaFX中设置ObservableList

@FXML 
private ChoiceBox choiceBoxPizza; 

我的功能将包含一些测试数据:

private void fillChoiceBoxPizza(){ 
    try { 
     List<String> list = new ArrayList<String>(); 
     list.add("Pizza A"); 
     list.add("Pizza B"); 
     list.add("Pizza C"); 
     ObservableList obList = FXCollections.observableList(list); 
     choiceBoxPizza = new ChoiceBox<>(obList); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     System.out.println(e.toString()); 
    } 

} 

所以应该充满list

在我的控制器中我声明。奇怪的是,我没有得到任何异常,并且choiceBox在方法调用之后仍然是空的。

我的逻辑中是否有错误?

回答

3

替换此行:

choiceBoxPizza = new ChoiceBox<>(obList); 

这一个,它应该工作:

choiceBoxPizza.setItems(obList) 

你不应该初始化在.fxml文件已声明的元素。 Here是关于JavaFX中的初始化过程如何工作的更广泛的解释。

希望这会有所帮助