如何在 JavaFX 中制作无限制的 AnchorPane

How to make unlimited AnchorPane's in JavaFX

我正在尝试使用 JavaFX 创建一个包含许多块(AnchorPane 的)的程序。 我的问题是,当我创建一个块时,其他块不会出现,因为我只创建了一个带有 ID 的 FXML 块,而其他人认为它们已经存在。但我需要在控制器 class 中创建功能,当您点击菜单中的按钮时该功能将起作用。 这是我的控制器代码:

public class HelloController {
    @FXML
    private AnchorPane plot = new AnchorPane();

    @FXML
    void AddPlotBlock(ActionEvent event) {
        this.plot.setMinHeight(110.0D);
        this.plot.setMinWidth(250.0D);
        this.plot.setStyle("-fx-background-color: grey");
    }

和 FXML:

<AnchorPane maxHeight="-1.0" maxWidth="-1.0" prefHeight="-1.0" prefWidth="-1.0" VBox.vgrow="ALWAYS" style="-fx-background-color: #301934;">
        <children>
            <AnchorPane fx:id="plot"/>
        </children>
</AnchorPane>

有谁知道如何放置多个窗格?

好的,我找到了解决方法。 为此,您需要在 FXML 主文件中更改 id,而不是在子文件中,而是在窗格(我的 AnchorPane)中更改,然后在控制器中使用确切名称制作 AnchorPane。 然后你可以初始化你的块或控制器内的任何东西并将它添加到窗格中。 这是我的解决方案。

控制器 >

plots.getChildren().add(card); // plots is id

上面的命令在按钮点击里面。

@FXML
private AnchorPane plot = new AnchorPane();

@FXML
public AnchorPane plots;

情节是对象。你可以放置无限个物体(如果你有记忆的话)

plots 是锚窗格的 id。

FXML 锚窗格

<AnchorPane fx:id="plots" maxHeight="-1.0" maxWidth="-1.0" prefHeight="-1.0" prefWidth="-1.0" VBox.vgrow="ALWAYS" style="-fx-background-color: #301934;" />

因此锚窗格具有 id,并且您将子参数(绘图)添加到主窗格(绘图)。 感谢您的评论和规则。