2016-04-16 126 views
0

我想提出一個項目,並在設計FXML但有一點我卡住了,出現此錯誤場景構建JavaFX的錯誤打開FXML文件

Error for the path

我不知道如何配置它

我FXMLMain.fxml代碼是

<center> 
    <Pane fx:id="pneDashboard" prefHeight="320.0" prefWidth="800.0"> 
     <children> 
      <fx:include source="/javafxapplication1/TempratureTab/FXMLTempraturetab.fxml" /> 
     </children> 
    </Pane> 
</center> 

這是主要的錯誤描述

所致:java.io.FileNotFoundException:javafxapplication1 \ TempratureTab \ FXMLTempraturetab.fxml(系統無法找到指定的路徑)

我的封裝結構是

| --->源包

|--->javafxapplication1 

     |--->FXMLMain.fxml 

     |--->TempratureTab(folder) 

       |--->FXMLtempraturetab.fxml 

如果有人能幫助我解決這個

我甚至嘗試了不同的操作系統和不同的NetBeans IDE版本

而且有趣的事實是,它完美地執行...

在編輯模式下

它顯示在該行沒有錯誤..

只在SceneBuilder。

+0

你缺少你的文件和導入。爲了更輕鬆的工作流程,您可以在SceneBuilder應用程序中設計第一個xml文件,然後您將得到正確生成的導入。這就是它的設計目的,以消除xml語法錯誤。 – tjago

+0

我的每個FXML文件都是通過NEW> Empty FXML 和<?xml version =「1.0」encoding =「UTF-8」?>生成的,並且導入全部存在 我是否還必須導入包... –

回答

0

根據this(粗體是礦):

<fx:include>標籤創建從在另一文件中定義FXML標記的對象。它的用法如下<fx:include source="filename"/> 其中filename是要包含的FXML文件的名稱。 以前導斜槓字符開頭的值被視爲相對於類路徑。不帶前導斜槓的值被認爲是相對於當前文檔的路徑。

當你運行應用程序,您的項目顯然是在類路徑,這一點:

<fx:include source="/javafxapplication1/TempratureTab/FXMLTempraturetab.fxml" /> 

將被解析爲一個有效的URL:

"file:/<full-path-of-your-project>/javafxapplication1/TempratureTab/FXMLTempraturetab.fxml" 

但是,當你打開帶場景生成器的FXML,它不知道你的項目,所以它不能將它添加到類路徑中。嘗試絕對路徑將拋出一個java.io.FileNotFoundException,因爲FXMLLoader無法找到該文件,因爲它解決了路徑爲:

"file:javafxapplication1/TempratureTab/FXMLTempraturetab.fxml" 

這不是一個有效的URL。

雖然兩者在運行應用程序時,爲了打開在場景製作工具FXML文件的相對和絕對路徑的工作,你必須使用相對路徑:

<fx:include source="TempratureTab/FXMLTempraturetab.fxml" /> 
+0

對不起@josé-pereda。沒有工作...... 我已經嘗試了最後一個代碼尖晶石 我甚至嘗試了包括 <?進口javafxapplication1.TempratureTab。*?> 它一點兒也不利於要麼... –

+0

你不」不需要導入它。你可以嘗試使用'File-> Include-> FXML ...'菜單嗎?然後瀏覽並選擇要包含的FXML文件。你正在使用什麼場景生成器版本? –

+0

我終於解決了它是NetBeans的錯誤... –