2016-12-16 2 views
-1

Bonjour bon j'ai un problème et je veux charger un ComboBox avec les données renvoyées à partir d'une base de données et tout va bien. La chose est que lorsque vous exécutez la méthode qui remplissent le combobox lance erreur de compilation.JavaFX ComboBox FXML

C'est l'erreur: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException

public class implémente 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);  } 
    } } 

L'erreur se produit dans la ligne dans laquelle l'article est ajouté à la zone de liste déroulante: CmbCountry.getItems() ajouter (pais.Nombre).

espoir peut me aider merci beaucoup :)

+5

[donc] est un Inglés-seul site. S'il vous plaît poster en anglais. [Voir ici] (http://meta.stackoverflow.com/a/262054/1402846) et [ici] (http://blog.stackoverflow.com/2009/07/non-english-question-policy/) pour détails Merci. – Pang

Répondre

0

Je ne comprends pas un seul mot de votre question, donc s'il vous plaît traduire votre question Inglés (comme commenté par Pang).

Le InvocationTargetException est INTERVENUES propably en raison du fait que vous REINITIALIZE votre JFXComboBox. Je pense que si vous supprimez cette partie, votre problème sera résolu. E.g.

@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(); 
}