Ayuda cargar ComboBox JavaFX FXML

时间:2016-12-16 04:12:17

标签: javafx combobox

Hola buena tengo un problema y es que quiero cargar un combobox con datos devueltos por una base de datos yhastacátodobien。 La cosa es que al ejecutarelmétodowelcualllenaríareel combobox lanza errordecompilación。

Este es el error:java.lang.RuntimeException:java.lang.reflect.InvocationTargetException

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

El error se产生en la linea en la cual se agrega el Item al ComboBox:CmbCountry.getItems()。add(pais.Nombre);

Espero me puedan ayudar muchas gracias:)

1 个答案:

答案 0 :(得分:0)

我不明白你问题的一个字,所以请把你的问题翻译成英文(由Pang评论)。

由于您重新初始化JFXComboBox,InvocationTargetException可能会发生。我想如果你删除那部分,你的问题就会得到解决。 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();
}