2014-11-05 2 views
0

Im пытается открыть fxml-файлы нашего проекта с помощью JavaFX Scene Builder, но получаю ошибку.Открытие файла FXML

Вот один пример файл:

<?xml version="1.0" encoding="UTF-8"?> 
<?import javafx.collections.FXCollections ?> 
<?import javafx.constants.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 
<?import java.net.URL?> 
<ScrollPane xmlns:fx="http://javafx.com/fxml" 
      fx:controller="javafx.controller.main.kerNMainController" 
      fitToWidth="true" 
      fitToHeight="true"> 

    <GridPane styleClass="root" 
       alignment="CENTER_LEFT" 
       hgap="10" 
       vgap="20"> 
     <VBox alignment="CENTER"> 
      <Label text="%kerN.main.welcome.label.text" 
        GridPane.columnIndex="0" 
        GridPane.rowIndex="1" 
        GridPane.halignment="CENTER" 
        fx:id="welcomeLabel"/> 

      <Label fx:id="versionLabel" text="%kerN.main.version.label.text" styleClass="outerLabel"/> 
     </VBox> 

     <VBox alignment="BASELINE_CENTER" 
       spacing="40" 
       GridPane.columnIndex="0" 
       GridPane.rowIndex="2" 
       minHeight="550" 
       minWidth="550"> 
      <Button fx:id="assignedTestsAvailableButton" 
        text="%kerN.main.assigned.tests.available.btn.text" 
        onAction="#handleAssignedTestsAvailable" 
        styleClass="assignedTestsButton"> 
       <minWidth> 
        <Constants fx:constant="LARGE_BUTTON_WIDTH"/> 
       </minWidth> 
       <minHeight> 
        <Constants fx:constant="DOUBLE_BUTTON_HEIGHT"/> 
       </minHeight> 
      </Button> 
      <Button fx:id="configurationButton" 
        text="%kerN.main.configuration.btn.text" 
        styleClass="configurationButton" 
        onAction="#handleConfiguration"> 
       <minWidth> 
        <Constants fx:constant="LARGE_BUTTON_WIDTH"/> 
       </minWidth> 
       <minHeight> 
        <Constants fx:constant="DOUBLE_BUTTON_HEIGHT"/> 
       </minHeight> 
      </Button> 
      <Button fx:id="maintenanceButton" 
        text="%kerN.main.maintenance.btn.text" 
        styleClass="maintenanceButton" 
        onAction="#handleMaintenance"> 
       <minWidth> 
        <Constants fx:constant="LARGE_BUTTON_WIDTH"/> 
       </minWidth> 
       <minHeight> 
        <Constants fx:constant="DOUBLE_BUTTON_HEIGHT"/> 
       </minHeight> 
      </Button> 
      <Button fx:id="editTestDataButton" 
        text="%kerN.main.edit.test.data.button.text" 
        onAction="#handleEditTestData" 
        styleClass="editTestDataButton"> 
       <minWidth> 
        <Constants fx:constant="LARGE_BUTTON_WIDTH"/> 
       </minWidth> 
       <minHeight> 
        <Constants fx:constant="DOUBLE_BUTTON_HEIGHT"/> 
       </minHeight> 
      </Button> 
      <Button fx:id="testProcessButton" 
        text="%test.process.button.text" 
        onAction="#handleTestProcess" 
        styleClass="testProcessButton"> 
       <minWidth> 
        <Constants fx:constant="LARGE_BUTTON_WIDTH"/> 
       </minWidth> 
       <minHeight> 
        <Constants fx:constant="DOUBLE_BUTTON_HEIGHT"/> 
       </minHeight> 
      </Button> 
     </VBox> 
    </GridPane> 

    <stylesheets> 
     <URL value="@../../style/general/Buttons.css"/> 
     <URL value="@../../style/main/kerNMain.css"/> 
    </stylesheets> 
</ScrollPane> 

Ошибка Im получая за это от сцены Builder является

java.io.IOException: javafx.fxml.LoadException: Invalid attribute. 
/C:/Users/User/workspace/kerN/src/javafx/frame/main/kerNMain.fxml:37 

    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:92) 
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:80) 
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:95) 
    at com.oracle.javafx.scenebuilder.kit.editor.EditorController.updateFxomDocument(EditorController.java:2370) 
    at com.oracle.javafx.scenebuilder.kit.editor.EditorController.setFxmlTextAndLocation(EditorController.java:655) 
    at com.oracle.javafx.scenebuilder.app.DocumentWindowController.loadFromFile(DocumentWindowController.java:386) 
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.performOpenFiles(SceneBuilderApp.java:579) 
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.handleOpenFilesAction(SceneBuilderApp.java:447) 
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.handleLaunch(SceneBuilderApp.java:427) 
    at com.oracle.javafx.scenebuilder.app.AppPlatform.requestStartGeneric(AppPlatform.java:139) 
    at com.oracle.javafx.scenebuilder.app.AppPlatform.requestStart(AppPlatform.java:106) 
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.start(SceneBuilderApp.java:371) 
    at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837) 
    at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335) 
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301) 
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298) 
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) 
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) 
    at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) 
    at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: javafx.fxml.LoadException: Invalid attribute. 
/C:/Users/User/workspace/kerN/src/javafx/frame/main/kerNMain.fxml:37 

    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2613) 
    at javafx.fxml.FXMLLoader.access$100(FXMLLoader.java:104) 
    at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:943) 
    at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:216) 
    at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:738) 
    at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2723) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425) 
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:89) 
    ... 22 more 

Файлов FXML создаются вручную и theywork в заявке, но не могут быть открыты в Scene Builder, ни один из них ... Есть ли решение для этого или альтернативных сборщиков fxml?

Line: 37 <Constants fx:constant="LARGE_BUTTON_WIDTH"/>

+0

Можете ли вы подтвердить, что линия 37 вашего kerNMail.fxml? Я не думаю, что есть пакет под названием 'javafx.constants', который может быть проблемой. –

+0

@James_D Извините, я обновил вопрос по строке 37: '' – Anarkie

+0

Эта строка относится к классу 'Constants'. В любом из импортируемых вами пакетов нет такого класса (и вообще нет пакета 'javafx.constants'). Я думаю, именно поэтому вы получаете ошибку. Если вы определили класс 'Constants', вам необходимо предоставить для него правильный импорт. –

ответ

0

После this руководство, оно должно быть:

<Button fx:id="assignedTestsAvailableButton" 
     text="%kerN.main.assigned.tests.available.btn.text" 
     onAction="#handleAssignedTestsAvailable" 
     styleClass="assignedTestsButton"> 
    <minWidth> 
     <Double fx:constant="LARGE_BUTTON_WIDTH"/> <!-- change here --> 
    </minWidth> 
    <minHeight> 
     <Double fx:constant="DOUBLE_BUTTON_HEIGHT"/> <!-- change here --> 
    </minHeight> 
</Button> 
+0

По-прежнему такая же ошибка в той же строке. – Anarkie

+0

Я не могу воссоздать проблему. Для этого слишком много кода отсутствует. Может быть, вы можете создать MWE? – Turing85

Смежные вопросы