2016-12-16 198 views
-1

喂好我有一个问题,我想从数据库返回的数据,远远好加载一个组合框。问题是,当你运行它填补了组合框的方法启动编译错误。JavaFX的组合框FXML

这是错误:了java.lang.RuntimeException:java.lang.reflect.InvocationTargetException

公共类实现FXMLDocumentRegisterController Initializable {

@FXML 
    private JFXComboBox<String> CmbCountry; 

    @FXML 
    private JFXButton BtnBack; 

    @FXML 
    void BtnBack_Clicked(ActionEvent event) throws IOException{ 
      Parent parent = FXMLLoader.load(getClass().getResource("FXMLDocumentLogIn.fxml")); 
      Scene loginScene = new Scene(parent); 
      Stage stage = (Stage)((Node) event.getSource()).getScene().getWindow(); 
        stage.hide(); 
        stage.setScene(loginScene); 
        stage.show(); 
    } 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     this.CmbCountry = new JFXComboBox<String>();//aca inicializo el combobox 
     loadCmb();//aca ejecuto el metodo de carga del combobox 
    } 

    private void loadCmb(){//este metodo carga el combobox con los datos devueltos de la base de datos 
     RepoPais repo = FabricaReposSQL.CrearRepoPais(); 
     Iterable<Pais> p = repo.FindAll(); for (Pais pais : p) { 
      CmbCountry.getItems().add(pais.Nombre);  } 
    } } 

在线路中发生错误,其中项目被添加到组合框:CmbCountry.getItems()加(pais.Nombre)。

希望能帮助我非常感谢你:)

+5

[所以]是一个英语专用网站。请张贴在英格尔斯。 [见这里](http://meta.stackoverflow.com/a/262054/1402846)和[这里](http://blog.stackoverflow.com/2009/07/non-english-question-policy/),用于详细信息。谢谢。 – Pang

回答

0

我不明白你的问题的一个词,所以请你的问题翻译成英语(如庞评论)。

InvocationTargetException是propably因为你“重新初始化JFXComboBox事实存在的。我认为,如果你删除的部分,您的问题将得到解决。例如

@Override 
public void initialize(URL url, ResourceBundle rb) { 
    // this is not needed, as it is done by javafx before this method is called. 
    // this.CmbCountry = new JFXComboBox<String>(); 
    loadCmb(); 
}