2014-01-21 5 views
3

Swing 컨텍스트에서 FXML을 사용하는 JavaFX 2에 대한 약간의 도움을 찾고 있습니다. Scene Builder (Version : 2.0-b10, Changeset : 48fc80a12d33)를 사용하여 장면을 만들었고 Java 1.7에서 Swing의 JFrame에서 JFXPanel로 간단히로드하려고합니다. 나는이 작업을 수행 할 때 나는 라인 (16)에 잘못된 속성 오류가이 라인 16 :JavaFX FXMLLoader 잘못된 속성

<?xml version="1.0" encoding="UTF-8"?> 

<?import java.lang.*?> 
<?import javafx.geometry.*?> 
<?import javafx.scene.chart.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 
<?import javafx.scene.paint.*?> 

<AnchorPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="600.0" minWidth="800.0" prefHeight="768.0" prefWidth="1024.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 
    <children> 
     <BorderPane layoutX="54.0" layoutY="45.0" prefHeight="400.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> 
      <left> 
       <VBox fx:id="" prefHeight="726.0" prefWidth="210.0" style="-fx-background-color: #dee8f6;"> 
        <children> 
         <Label style="-fx-font-weight: bold;" text="Storage Overview Home" VBox.vgrow="NEVER"> 
          <padding> 
           <Insets bottom="18.0" left="6.0" top="6.0" /> 
          </padding> 
         </Label> 
         <ComboBox fx:id="ASPCombo" prefWidth="150.0" VBox.vgrow="NEVER" xmlns:fx="http://javafx.com/fxml"> 
          <VBox.margin> 
           <Insets bottom="12.0" left="6.0" /> 
          </VBox.margin> 
         </ComboBox> 
         <Label text="Job Information" VBox.vgrow="NEVER" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 
          <padding> 
           <Insets bottom="12.0" left="6.0" /> 
          </padding> 
         </Label> 
         <Hyperlink fx:id="activeJobStatusLink" style="-fx-text-fill: #210B61;" text="Active Job Status" VBox.vgrow="NEVER" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 
          <VBox.margin> 
           <Insets left="12.0" /> 
          </VBox.margin> 
         </Hyperlink> 
         <Hyperlink fx:id="jobMonitorThresholdLink" style="-fx-text-fill: #210B61;" text="Job Monitor Threshold History" VBox.vgrow="NEVER" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 
          <VBox.margin> 
           <Insets left="12.0" /> 
          </VBox.margin> 
         </Hyperlink> 
         <Hyperlink fx:id="jobQtempThresholdLink" style="-fx-text-fill: #210B61;" text="Job QTEMP Threshold History" VBox.vgrow="NEVER" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 
          <VBox.margin> 
           <Insets left="12.0" /> 
          </VBox.margin> 
         </Hyperlink> 
         <Hyperlink fx:id="jobSpooledFileThresholdLink" style="-fx-text-fill: #210B61;" text="Job Spooled File Threshold History" VBox.vgrow="NEVER" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 
          <VBox.margin> 
           <Insets left="12.0" /> 
          </VBox.margin> 
         </Hyperlink> 
         <StackPane prefHeight="150.0" prefWidth="200.0" VBox.vgrow="ALWAYS" /> 
         <Label text="See Also"> 
          <padding> 
           <Insets bottom="6.0" left="12.0" /> 
          </padding> 
         </Label> 
         <Hyperlink fx:id="collectionHistoryLink" style="-fx-text-fill: #210B61;" text="Collection History" VBox.vgrow="NEVER" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 
          <VBox.margin> 
           <Insets left="12.0" /> 
          </VBox.margin> 
         </Hyperlink> 
         <Hyperlink fx:id="currentStorageLink" style="-fx-text-fill: #210B61;" text="Current Storage" VBox.vgrow="NEVER" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 
          <VBox.margin> 
           <Insets bottom="12.0" left="12.0" /> 
          </VBox.margin> 
         </Hyperlink> 
        </children> 
       </VBox> 
      </left> 
      <top> 
       <ToolBar prefWidth="200.0" xmlns:fx="http://javafx.com/fxml"> 
        <items> 
         <Button fx:id="btnRefresh" mnemonicParsing="false" text="Back" /> 
         <HBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> 
          <children> 
           <Pane HBox.hgrow="ALWAYS" /> 
          </children> 
         </HBox> 
         <Button mnemonicParsing="false" text="Refresh" /> 
        </items> 
       </ToolBar> 
      </top> 
      <center> 
       <VBox prefHeight="200.0" prefWidth="100.0" style="-fx-background-color: #FFFFFF;"> 
        <children> 
         <VBox minHeight="-Infinity" prefHeight="136.0" prefWidth="766.0" VBox.vgrow="NEVER"> 
          <children> 
           <Label fx:id="storageOverviewTitle" style="-fx-font-size: 18; -fx-text-fill: #0000FF;" text="Identify and Solve Disk Storage Problems" VBox.vgrow="NEVER"> 
            <textFill> 
             <Color blue="1.0" /> 
            </textFill> 
           </Label> 
           <TextArea fx:id="storageOverviewTextArea" editable="false" prefHeight="100.0" prefWidth="200.0" text="The Storage Overview helps you quickly identify and solve disk storage problems. Most surges in disk use are caused by active jobs. For example, a server communication job can devour a large amount of your unprotected storage space. And, these jobs can be hard to find. Use the ASP Threshold History and Job Temp Storage History buttons to display the ASPs and jobs that have exceeded their thresholds. Use the Active Jobs Status button to find and hold or end the job(s) causing a disk storage problem." wrapText="true" VBox.vgrow="NEVER" /> 
          </children> 
          <VBox.margin> 
           <Insets bottom="24.0" left="24.0" right="24.0" top="24.0" /> 
          </VBox.margin> 
         </VBox> 
         <HBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="177.0" prefWidth="814.0" VBox.vgrow="NEVER"> 
          <children> 
           <PieChart fx:id="totalASPUtilizationPieChart" title="Total ASP Utilization" HBox.hgrow="NEVER" /> 
           <PieChart fx:id="utilizationByLibraryPieChart" title="By Library" HBox.hgrow="NEVER" /> 
           <PieChart fx:id="utilizationByIFSDirPieChart" title="By IFS Directory" HBox.hgrow="NEVER" /> 
          </children> 
         </HBox> 
         <AreaChart fx:id="ASPUtilizationHistoryAreaChart" title="Utilization History - ASP 001" VBox.vgrow="ALWAYS"> 
          <xAxis> 
           <CategoryAxis side="BOTTOM" /> 
          </xAxis> 
          <yAxis> 
           <NumberAxis side="LEFT" /> 
          </yAxis> 
         </AreaChart> 
        </children> 
       </VBox> 
      </center> 
     </BorderPane> 
    </children> 
</AnchorPane> 

나는 장면 그래프를 표시하려고 시도하는 사용하고 코드 : 여기

<Label style="-fx-font-weight: bold;" text="Storage Overview Home" VBox.vgrow="NEVER"> 전체 장면 입니다 :

Platform.setImplicitExit(false); 
Platform.runLater(new Runnable() { 
    @Override 
    public void run() { 
     Parent root; 
     try { 
      root = FXMLLoader.load(getClass().getResource("MyPanel.fxml")); 
      Scene scene = new Scene(root); 
      swingPanel.setScene(scene); 
     } catch (Exception ex){ 
      //Log an error here... 
     } 
    } 
}); 

내가 오류는 다음과 같습니다

Invalid property. 
/C:/HelpSys/space/trunk/gui/classes/com/helpsystems/space/gui/csi/MyPanel.fxml:16 
    at javafx.fxml.FXMLLoader$PropertyElement.<init>(FXMLLoader.java:1154) 
    at javafx.fxml.FXMLLoader.createElement(FXMLLoader.java:2338) 
    at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2311) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2131) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2028) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2744) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2723) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2709) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2696) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2685) 
    at com.helpsystems.space.gui.csi.CSIWizzard$1.run(CSIWizzard.java:182) 
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179) 
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:176) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:176) 
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) 
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29) 
    at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73) 
    at java.lang.Thread.run(Unknown Source) 

답변

7

,속성은 JavaFX 2.2의 Label에서 유효한 속성이 아닙니다. JavaFX 8에서 LabelRegion (Control 통해)에서 상속되므로 padding 속성을 상속합니다. 따라서 SceneBuilder가 JavaFX 8을보고 속성을 확인한 것 같습니다. 자바 FX 2.2에서

이 CSS에서 설정할 수있는 labelPadding 속성입니다, 그래서

<Label style="-fx-font-weight: bold; -fx-label-padding: 6 0 18 6;" text="Storage Overview Home" 
    VBox.vgrow="NEVER"> 

</Label> 
+0

완벽한을 사용! 감사합니다 @ James_D! – RonSiven