当前位置: 首页 > 知识库问答 >
问题:

JavaFX FXMLLoader属性无效

庞鸿骞
2023-03-14

我正在寻找在Swing上下文中使用FXML的JavaFX 2的一点帮助。我用场景生成器(版本: 2.0-b10,变更集: 48fc80a12d33)构建了一个场景,并试图在Java1.7下简单地将其加载到Swing中JFrame上的JFXPanel中。当我这样做时,我在第16行收到无效属性错误。这是第16行:

以下是整个场景:

<?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>

我用来尝试显示场景图的代码是:

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)

共有1个答案

齐英朗
2023-03-14

在JavaFX 2.2的标签中,填充属性不是有效的属性。在JavaFX8中,标签继承自区域(通过控件),因此继承了填充属性。因此,我怀疑SceneBuilder正在研究JavaFX 8以确定其属性。

在JavaFX 2.2中,有一个labelPadd属性,可以从CSS中设置,所以使用

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

</Label>

 类似资料:
  • 嗨,我是Spring的新手,现在我正在使用Maven运行我的应用程序 但是当我运行我的项目时,我得到的异常如下 bean类的'年'[com.ensis.spring.MovieLister]:Bean属性'年'不可写或具有无效的setter方法。setter的参数类型是否与getter的返回类型匹配?

  • 我正在尝试使用骆驼JavaDSL将文件路由到SFTP服务器,如下所示: 但是,当消息到达此终结点时,Camel 会引发以下异常: 我可以看到在堆栈跟踪中打印的交易所上设置了目标目录属性。如果我替换 exchangeProperty(destinationDir) 在具有实际目标目录(tmp/目标/dir 1/)的路由中,它工作正常。问题是,我需要目标目录是动态的。我尝试过在路由中使用( 在调试Ca

  • 我有一个带有javamail的spring启动应用程序,我配置了spring。属性,但似乎不需要属性来发送电子邮件。 下面是发送电子邮件的java代码 pom.xml 这里我们看到了这个错误 组织。springframework。邮政MailSendException:邮件服务器连接失败;嵌套的异常是com。太阳邮政util。MailConnectException:无法连接到主机,端口:loca

  • 问题内容: 在HTML5中,iframe具有“无缝”之类的新属性,应删除边框和滚动条。我已经尝试过了,但是似乎没有用,我仍然可以看到滚动条和边框(我正在使用Google Chrome浏览器),这是我的代码: 知道为什么它不起作用吗? 还有一个问题,是否可以在iframe中定位页面的特定部分? 问题答案: 尚不正确支持。 Chrome 31(可能还有更早的版本)支持该属性的某些部分,但不完全支持。

  • 本文向大家介绍iisschlp.wsc [88,25] 属性值无效 : progid,包括了iisschlp.wsc [88,25] 属性值无效 : progid的使用技巧和注意事项,需要的朋友参考一下 在执行iisapp.vbs时,可能会提示如下错误: Windows Script Component - file://C:WINDOWSsystem32iisschlp.wsc [88,25]

  • 我是新来的node.js.我正在尝试创建一个注册页面,并使用mysql将输入的值保存在数据库中。 我可以通过在请求头上传递参数来实现这一点。但是,在请求头中传递参数始终不是一个好主意。所以尝试在请求体上传递参数。 我使用邮差测试我的node.js服务。 下面是我的演示应用程序的github链接 https://github.com/debasish283/node_gulp 我还需要做什么来传递请