【问题标题】:FXML File generates GridPane default property LoadExceptionFXML 文件生成 GridPane 默认属性 LoadException
【发布时间】:2012-07-25 18:00:29
【问题描述】:

我在使用 FXML 文件(手动编写,不是在 SceneBuilder 中生成)构建 JavaFX 项目时遇到问题。下面是 FXML 文件。这是按照http://docs.oracle.com/javafx/2/get_started/fxml_tutorial.htm 中的 FXML 说明编写的。它生成的实际错误是Caused by: javafx.fxml.LoadException: javafx.scene.layout.GridPane does not have a default property. 任何帮助将不胜感激。提前致谢。

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

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>

<Scene width = "550" 
    fx:controller = "fxmltableview.FXMLTableViewController"
    xmlns:fx = "http://javafx.com/fxml">

    <GridPane alignment = "center" hgap = "10" vgap = "10">
        <padding> <Insets top = "10" right = "10" bottom = "10" left = "10"/> </padding>
        <Label text = "Address Book" GridPane.columnIndex = "0" GridPane.rowIndex = "0" style = "-fx-font: NORMAL 20 Tahoma;"/>
        <TableView fx:id = "tableView" GridPane.columnIndex = "0" GridPane.rowIndex = "1">
            <columns> <TableColumn text = "First Name"> </TableColumn>
                      <TableColumn text = "Last Name">  </TableColumn>
                      <TableColumn text = "email">  </TableColumn>
            </columns>
        </TableView>
    </GridPane>
</Scene>

【问题讨论】:

    标签: java javafx javafx-2 fxml


    【解决方案1】:

    您忘记了 GridPane 的 &lt;children&gt; 标签:

    <GridPane alignment = "center" hgap = "10" vgap = "10">
        <padding> <Insets top = "10" right = "10" bottom = "10" left = "10"/> </padding>
        <children>
          <Label text = "Address Book" GridPane.columnIndex = "0" GridPane.rowIndex = "0" style = "-fx-font: NORMAL 20 Tahoma;"/>
          <TableView fx:id = "tableView" GridPane.columnIndex = "0" GridPane.rowIndex = "1">
            <columns> <TableColumn text = "First Name"> </TableColumn>
                      <TableColumn text = "Last Name">  </TableColumn>
                      <TableColumn text = "email">  </TableColumn>
            </columns>
          </TableView>
        </children>
    </GridPane>
    

    因此,FXML 试图将 Label 和 Table 放入 default 属性,这对 GridPane 不可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      相关资源
      最近更新 更多