2017-01-03 13 views
3

を指定された私は、このウィンドウの具体的な内部方法にいくつかのパラメータを渡すことで、ウィンドウをロードするための方法を呼んでいるが、私はこの例外を持っている:ここJavaFXの例外:コントローラの値が既に

GRAVE: null 
javafx.fxml.LoadException: Controller value already specified. 
unknown path:12 

です私の方法

public void openDef(String sys, String comp, String code) throws Exception { 
    Stage defStage = new Stage(); 
    FXMLLoader loader = new FXMLLoader(); 
    DefTableController cont = new DefTableController();//calling class controller 
    loader.setController(cont); 
    Parent frame = loader.load(getClass().getResource("defTable.fxml").openStream()); 
    cont.getSysChoice(sys, comp, code);//call the method by passing parameters 
    Scene sceneDef = new Scene(frame); 

    defStage.setTitle("Défaillance du " + comp); 
    defStage.setScene(sceneDef); 
    defStage.show(); 
} 

コントローラーが既に設定されていると考えられるのはなぜですか?それを修正する方法は? ありがとう

+1

あなたのコントローラを 'Fxml'で定義した可能性はあります! –

+0

あなたは正しかったです、ありがとう、しかし、それはパラメータを渡されません、私は何も受け取りません – devhicham

+0

どのパラメータ? –

答えて

3

FXMLファイルからfx:controller属性を削除します。この属性は、新しいコントローラを作成するためのFXMLLoaderへの指示です:すでにsetControllerを呼び出して設定しているので、これは矛盾します。

JavaFX Error: Controller value already specified

この男は彼に小道具^それに答え!

関連する問題