2013-08-30 67 views
1

最新的JavaFX 1.1 scenebuilder插入命名空間,當我救我FXML文件的JavaFX 1.1 scenebuilder插入命名空間造成分析錯誤

xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" 

當我打開在NetBeans 7.3.1編輯,我得到這樣的錯誤文件「控制器未在根組件上定義「。我刪除'1'來修復它。

和在NetBeans IDE獵犬面板:

Aug 29, 2013 10:37:32 AM : Retrieving Location: http://javafx.com/javafx/2.2

Error: Unknown Host: javafx.com URL Resource

有一個控制器。問題是,爲什麼它是創造

xmlns:fx="http://javafx.com/fxml/1"

代替

xmlns:fx="http://javafx.com/fxml"

回答

1

1.)使用SceneBuilder創建應用程序時,您最有可能還沒有一個controller類來處理應用程序中的事件和其他任何事情。保存*.fxml文件會給你類似如下:

<?xml version="1.0" encoding="UTF-8"?> 
<?import java.lang.*?> 
<?import java.util.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 
<?import javafx.scene.paint.*?> 

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" 
minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0" 
xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2"> 
    <children> 
    ...more here... 
    </children> 
</AnchorPane> 

您需要創建應用程序控制器,並將其添加主節點<AnchorPane ...>,如下所示(使用完整的包路徑):

<AnchorPane id="AnchorPane" ... fx:controller="application.ListAndTableViewController"> 

2.)如果您已有controller,您可以在SceneBuilder中指定它,如附圖所示。

SceneBuilder

通過以下兩種方法之一,由SceneBuilder創建的文件打開你的Netbeans的時候不會給你的錯誤。

+0

不,這不是問題 - 有一個控制器。問題是爲什麼它創建'xmlns:fx =「http://javafx.com/fxml/1」'而不是'xmlns:fx =「http://javafx.com/fxml」' – likejiujitsu

+1

爲什麼它在做我不知道:(但是我使用NetBeans進行了測試,在創建JavaFX項目並使用SceneBuilder更改了FXML後,我遇到了問題,即使它在NetBeans中運行並進行了comiling,當它懸停在它的「fx:controller」上時你之前描述過的錯誤SRY – nyyrikki

+0

我有完全相同的問題,並沒有找到答案 – jkaufmann

2

SB開發人員知道這個bug。在這一刻我通過下載Netbeans Developer版本解決它。另外我安裝jdk-8。解決:任何錯誤。但是,很少有測試ID。

+1

感謝您提供的信息,它是一個已知的錯誤https://javafx-jira.kenai.com/browse/DTL-5834 – likejiujitsu