2012-10-17 169 views
2

我有2個fxml文件mainFxml.fxml和second.fxml。主要的fxml有一個fx:id =「change」的按鈕。點擊更改按鈕時,我想要更改場景。 代碼mainFxml控制器按下按鈕時更改場景Fxml

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) 
+1

根據堆棧跟蹤,同時在線路14加載「second.fxml」(又名sucess.fxml)如果您需要幫助時出現錯誤後sucess.fxml或至少線圍繞14 –

+0

我使用現場建設者做出這個FXML :)我從來沒有費心去檢查文件:d我的錯:( –

+0

你應該張貼的FXML我遇到了一些麻煩,我的JavaFX加載文件。應用程序和其中一個問題是我引用了一個控制器,或者不存在或在另一個包中。 –

回答

0

最大的可能是你的文件second.fxml不位於與mainFxml.fxml的DC型的java文件相同的文件夾。

+0

所有文件都在同一目錄 –

1

這是在classpath所以應該是資源應以正斜槓precedded即 /second.fxml

這是假設它不是在一個包。確保您的構建系統也將其與類文件一起復制到輸出目錄。

+0

是的,第二個是一個共同的問題。如果你在Netbeans運行Clean和Build來確保。 –

+0

它被包含在包..我checcked用winrar .. 存在錯誤,甚至將其更改爲/second.fxml –

+0

後,它在罐子的根源是它的另一個目錄? –

1

「啊,那麼你需要/demo/second.fxml作爲資源路徑。說到這裏,我很困惑爲什麼錯誤信息顯示sucess.fxml而不是second.fxml。如果上述建議不起作用,您發佈FXML - 安迪直到」

安迪這個註釋直到是問題的答案。 謝謝安迪。你解決了我的問題:) 豎起大拇指!

包含軟件包名稱。 對於前:

/package_name/fxml_file_name.fxml