Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SceneBuilder节点不可选择_Java_Javafx_Javafx 8_Fxml_Scenebuilder - Fatal编程技术网

Java SceneBuilder节点不可选择

Java SceneBuilder节点不可选择,java,javafx,javafx-8,fxml,scenebuilder,Java,Javafx,Javafx 8,Fxml,Scenebuilder,在我的JavaFX应用程序中,一些节点显示在预览中,但不可选择,也不显示在层次结构中。SceneBuilder非目标示例: 在本例中,First Name列不可作为目标,即使其代码与Last Name列相同,也不会显示在层次结构中。 新的也一样。。。编辑。。。按钮 我的SceneBuilder版本是8.3.0。 我使用的是eclipse,如果必须手动操作,我将通过FXGraph编辑fxml FXML: 在FXML中的多个位置,重复定义相同标记的内容,如以下代码段: <columns>

在我的JavaFX应用程序中,一些节点显示在预览中,但不可选择,也不显示在层次结构中。SceneBuilder非目标示例:

在本例中,First Name列不可作为目标,即使其代码与Last Name列相同,也不会显示在层次结构中。 新的也一样。。。编辑。。。按钮

我的SceneBuilder版本是8.3.0。 我使用的是eclipse,如果必须手动操作,我将通过FXGraph编辑fxml

FXML:


在FXML中的多个位置,重复定义相同标记的内容,如以下代码段:

<columns>
   <TableColumn fx:id="firstNameColumn" prefWidth="75.0" text="First Name"/> 
</columns>
<columns> <!-- repetition!! -->  
   <TableColumn fx:id="lastNameColumn" prefWidth="75.0" text="Last Name"/> 
</columns>
这是不正确的-您应该打开标记一次,然后指定所有子项,然后关闭它一次。对于GridPane的子项,您的操作是正确的,例如:

<GridPane layoutX="67.0" layoutY="78.0" AnchorPane.leftAnchor="5.0" AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="30.0"> 
    <children>
        <Label text="First Name"/> 
        <Label text="Last Name" GridPane.rowIndex="1"/> 
        <Label text="Street" GridPane.rowIndex="2"/> 
        ...
    </children>
</GridPane>
根据我的经验,JavaFx本身接受in,并按预期显示一些非常有趣的FXML构造,但SceneBuilder倾向于更保守,只接受典型的构造。这可能就是预览看起来不错,但层次结构不完整的原因。如果手动编辑FXML,请首先查看SceneBuilder创建相同结构的方式—这是它所期望的方式

如果在所有位置更正嵌套,则生成的FXML为:

<AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="de.is2.address.view.PersonOverviewController"
    prefHeight="300.0" prefWidth="600.0">

    <children>
        <SplitPane dividerPositions="0.29797979797979796" layoutX="130.0" layoutY="70.0" prefHeight="300.0"
            prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
            AnchorPane.topAnchor="0.0">
            <items>
                <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
                    <children>
                        <TableView fx:id="personTable" layoutX="-25.0" layoutY="-21.0" prefHeight="200.0"
                            prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
                            AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
                            <columns>
                                <TableColumn fx:id="firstNameColumn" prefWidth="75.0" text="First Name" />
                                <TableColumn fx:id="lastNameColumn" prefWidth="75.0" text="Last Name" />
                            </columns>
                            <columnResizePolicy>
                                <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
                            </columnResizePolicy>
                        </TableView>
                    </children>
                </AnchorPane>
                <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
                    <children>
                        <Label layoutX="54.0" layoutY="37.0" text="Person Details" AnchorPane.leftAnchor="5.0"
                            AnchorPane.topAnchor="5.0" />
                        <GridPane layoutX="67.0" layoutY="78.0" AnchorPane.leftAnchor="5.0"
                            AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="30.0">
                            <columnConstraints>
                                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
                                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
                            </columnConstraints>
                            <rowConstraints>
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                            </rowConstraints>
                            <children>
                                <Label text="First Name" />
                                <Label text="Last Name" GridPane.rowIndex="1" />
                                <Label text="Street" GridPane.rowIndex="2" />
                                <Label text="City" GridPane.rowIndex="3" />
                                <Label text="Postal Code" GridPane.rowIndex="4" />
                                <Label text="Birthday" GridPane.rowIndex="5" />
                                <Label fx:id="firstNameLabel" text="Label" GridPane.columnIndex="1" />
                                <Label fx:id="lastNameLabel" text="Label" GridPane.columnIndex="1"
                                    GridPane.rowIndex="1" />
                                <Label fx:id="streetLabel" text="Label" GridPane.columnIndex="1"
                                    GridPane.rowIndex="2" />
                                <Label fx:id="cityLabel" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="3" />
                                <Label fx:id="postalCodeLabel" text="Label" GridPane.columnIndex="1"
                                    GridPane.rowIndex="4" />
                                <Label fx:id="birthdayLabel" text="Label" GridPane.columnIndex="1"
                                    GridPane.rowIndex="5" />
                            </children>
                        </GridPane>
                        <ButtonBar layoutX="203.0" layoutY="244.0" prefHeight="39.0" prefWidth="265.0"
                            AnchorPane.bottomAnchor="5.0" AnchorPane.rightAnchor="10.0">
                            <buttons>
                                <Button mnemonicParsing="false" text="New..." />
                                <Button mnemonicParsing="false" text="Edit..." />
                                <Button mnemonicParsing="false" onAction="#handleDeletePerson" text="Delete" />
                            </buttons>
                        </ButtonBar>
                    </children>
                </AnchorPane>
            </items>
        </SplitPane>
    </children>
</AnchorPane>

这在SceneBuilder 8.4.1中提供了所需的结果:所有表格列和按钮栏中的所有按钮都将在层次结构中显示并可选择。

您使用的是哪个SceneBuilder版本?网格窗格显示61行13列?你真的都有吗?当您选择网格窗格时,是否看到它?您有一个名为“LastName”的列,但没有名为“First Name”的列。“LastName”列是否可选?@JoséPereda我的SceneBuilder版本是8.3.0。61行和13列都是奇怪的未使用代码,我不确定它们来自何处,也许我也在使用FXGraph导致了奇怪的交互。否则网格窗格工作正常。@Kerry姓氏列按插入方式工作,可以选择。您能尝试删除或清除该代码吗?我确实从头开始尝试过使用拆分窗格和TableView的布局,但我无法重现您的问题。
<AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="de.is2.address.view.PersonOverviewController"
    prefHeight="300.0" prefWidth="600.0">

    <children>
        <SplitPane dividerPositions="0.29797979797979796" layoutX="130.0" layoutY="70.0" prefHeight="300.0"
            prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0"
            AnchorPane.topAnchor="0.0">
            <items>
                <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
                    <children>
                        <TableView fx:id="personTable" layoutX="-25.0" layoutY="-21.0" prefHeight="200.0"
                            prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
                            AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
                            <columns>
                                <TableColumn fx:id="firstNameColumn" prefWidth="75.0" text="First Name" />
                                <TableColumn fx:id="lastNameColumn" prefWidth="75.0" text="Last Name" />
                            </columns>
                            <columnResizePolicy>
                                <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
                            </columnResizePolicy>
                        </TableView>
                    </children>
                </AnchorPane>
                <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
                    <children>
                        <Label layoutX="54.0" layoutY="37.0" text="Person Details" AnchorPane.leftAnchor="5.0"
                            AnchorPane.topAnchor="5.0" />
                        <GridPane layoutX="67.0" layoutY="78.0" AnchorPane.leftAnchor="5.0"
                            AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="30.0">
                            <columnConstraints>
                                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
                                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
                            </columnConstraints>
                            <rowConstraints>
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                            </rowConstraints>
                            <children>
                                <Label text="First Name" />
                                <Label text="Last Name" GridPane.rowIndex="1" />
                                <Label text="Street" GridPane.rowIndex="2" />
                                <Label text="City" GridPane.rowIndex="3" />
                                <Label text="Postal Code" GridPane.rowIndex="4" />
                                <Label text="Birthday" GridPane.rowIndex="5" />
                                <Label fx:id="firstNameLabel" text="Label" GridPane.columnIndex="1" />
                                <Label fx:id="lastNameLabel" text="Label" GridPane.columnIndex="1"
                                    GridPane.rowIndex="1" />
                                <Label fx:id="streetLabel" text="Label" GridPane.columnIndex="1"
                                    GridPane.rowIndex="2" />
                                <Label fx:id="cityLabel" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="3" />
                                <Label fx:id="postalCodeLabel" text="Label" GridPane.columnIndex="1"
                                    GridPane.rowIndex="4" />
                                <Label fx:id="birthdayLabel" text="Label" GridPane.columnIndex="1"
                                    GridPane.rowIndex="5" />
                            </children>
                        </GridPane>
                        <ButtonBar layoutX="203.0" layoutY="244.0" prefHeight="39.0" prefWidth="265.0"
                            AnchorPane.bottomAnchor="5.0" AnchorPane.rightAnchor="10.0">
                            <buttons>
                                <Button mnemonicParsing="false" text="New..." />
                                <Button mnemonicParsing="false" text="Edit..." />
                                <Button mnemonicParsing="false" onAction="#handleDeletePerson" text="Delete" />
                            </buttons>
                        </ButtonBar>
                    </children>
                </AnchorPane>
            </items>
        </SplitPane>
    </children>
</AnchorPane>