2

mainFxml.fxml と second.fxml の 2 つの fxml ファイルがあります。メイン fxml には fx:id="change" のボタンがあります。変更ボタンがクリックされたときにシーンを変更したい。mainFxml コントローラーのコード

public void onChangeButtonAction(event e){
  Node node=(Node) event.getSource();
  Stage stage=(Stage) node.getScene().getWindow();
  Parent root = FXMLLoader.load(getClass().getResource("second.fxml"));/* Exception */
  Scene scene = new Scene(root);
  stage.setScene(scene);
  stage.show();


}

しかし、ボタンの変更を押すと、リソースが指定されていないため例外がスローされます。助けて..

スタックトレース

No resources specified.
file:/E:/Projects/javaFx/demo/dist/demo.jar!/demo/sucess.fxml:14
  at javafx.fxml.FXMLLoader$Element.processPropertyAttribute(FXMLLoader.java:305)
  at javafx.fxml.FXMLLoader$Element.processInstancePropertyAttributes(FXMLLoader.java:197)
  at javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:588)
  at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2430)
  at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2136)
  at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2028)
  at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2742)
  at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2721)
  at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2707)
  at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2694)
  at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2683)
  at demo.myFirstFxmlController.onSuccess(myFirstFxmlController.java:130)
  at demo.myFirstFxmlController.OnSubmitAction(myFirstFxmlController.java:53)
4

4 に答える 4

1

「ああ、リソース パスとして /demo/second.fxml が必要です。そうは言っても、なぜエラー メッセージに sucess.fxml が表示され、second.fxml が表示されないのか混乱しています。上記の提案が機能しない場合は、fxml を投稿できますか? ? – アンディ・ティル

Andy Till からのこのコメントは、質問に対する答えです。ありがとうアンディ。あなたは私の問題を解決しました:) いいね!!!

パッケージ名を含めます。例:

/package_name/fxml_file_name.fxml

于 2013-03-01T21:37:09.597 に答える
0

ほとんどの場合、ファイルはのコントローラ Java ファイルsecond.fxmlと同じフォルダにありません。mainFxml.fxml

于 2012-10-17T07:18:26.297 に答える