<children>
<fx:define>
<ArrayList fx:id="buttons">
<Button fx:id="btn1" layoutX="93.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
<Button fx:id="btn2" layoutX="187.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
<Button fx:id="btn3" layoutX="255.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
<Button fx:id="btn6" layoutX="505.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
<Button fx:id="btn4" layoutX="351.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
<Button fx:id="btn5" layoutX="436.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
</ArrayList>
</fx:define>
我在每个按钮中都出错,我甚至无法在sceneBuilder中打开fxml。这个enter image description here
出了什么问题以下fxml的完整代码
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import java.util.ArrayList?>
<AnchorPane fx:controller="sample.Controller" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<fx:define>
<ArrayList fx:id="buttons">
<Button fx:id="btn1" layoutX="93.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
<Button fx:id="btn2" layoutX="187.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
<Button fx:id="btn3" layoutX="255.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
<Button fx:id="btn6" layoutX="505.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
<Button fx:id="btn4" layoutX="351.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
<Button fx:id="btn5" layoutX="436.0" layoutY="31.0" mnemonicParsing="false" text="Button" />
</ArrayList>
</fx:define>
</children>
</AnchorPane>
我想将所有按钮存储在控制器
中的一个数组中答案 0 :(得分:-1)
我认为不可能在List中添加子项,尤其是标准ArrayList
。 FX组件使用ObservableList
来存储子组件。
我建议您将按钮添加到组中,如下所示:
<AnchorPane>
<Group fx:id="group">
<Button fx:id="btn1" layoutX="93.0" layoutY="31.0" mnemonicParsing="false" text="Button"/>
<Button fx:id="btn2" layoutX="187.0" layoutY="31.0" mnemonicParsing="false" text="Button"/>
<Button fx:id="btn3" layoutX="255.0" layoutY="31.0" mnemonicParsing="false" text="Button"/>
<Button fx:id="btn6" layoutX="505.0" layoutY="31.0" mnemonicParsing="false" text="Button"/>
<Button fx:id="btn4" layoutX="351.0" layoutY="31.0" mnemonicParsing="false" text="Button"/>
<Button fx:id="btn5" layoutX="436.0" layoutY="31.0" mnemonicParsing="false" text="Button"/>
</Group>
</AnchorPane>
您的按钮将在您的应用中显示,您可以对群组孩子进行操作,就像标准列表一样。