2016-12-16 14 views
-1

안녕하세요 좋은 나는 문제가 나는 데이터가 데이터베이스에서 반환하고 지금까지 너무 좋아와 콤보 상자를로드합니다. 문제는 당신이 실행할 때 콤보 상자를 채우는 방법은 컴파일 오류를 시작한다는 것입니다. 자바 FX 콤보 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(); 
}