gpt4 book ai didi

JavaFX FXMLLoader 无效属性

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:27:12 26 4
gpt4 key购买 nike

我正在寻找有关在 Swing 上下文中使用 FXML 的 JavaFX 2 的一些帮助。我使用 Scene Builder(版本:2.0-b10,变更集:48fc80a12d33)构建了一个场景,并试图将其简单地加载到 Java 1.7 下 Swing 中 JFrame 上的 JFXPanel 中。当我这样做时,我在第 16 行收到无效属性错误。这是第 16 行:<Label style="-fx-font-weight: bold;" text="Storage Overview Home" VBox.vgrow="NEVER">

这是整个场景:

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

最佳答案

padding 属性不是 JavaFX 2.2 中 Label 中的有效属性。在 JavaFX 8 中,Label 继承自 Region(通过 Control),因此继承了 padding 属性。所以我怀疑 SceneBuilder 正在查看 JavaFX 8 以确定属性。

在 JavaFX 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>

关于JavaFX FXMLLoader 无效属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21263169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com