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:)
答案 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();
}