gpt4 book ai didi

instance - JavaFX2 FXML 如何动态添加元素(例如按钮)

转载 作者:行者123 更新时间:2023-12-02 21:43:19 35 4
gpt4 key购买 nike

所以,我想要做的是,使用 fxml 创建一个自定义元素,然后将该元素的几个实例添加到容器中,例如 GridPane。 "new"运算符对我不起作用,因为我想使用 @fxml 注释器来访问该元素。克隆固然很好,但行不通。当在 for() 结构中使用添加许多元素时,FXMLLoader 非常慢。如果我可以将引用写入 fxml 父节点(可以从 Controller 调用),那就完美了。

抱歉...这里是伪...

public class Controller implements Initializable {

@FXML
private VBox stack;

@FXML
private Button button;

@FXML
private void Change(KeyEvent event) throws IOException {
for (int i=0; i<10; i++){
stack.getChildren().add(button);
}
}

}

将按钮添加到 VBox 中是没有问题的。但在 for 结构(添加多个按钮)中它会失败。我可以在 for 构造中使用 new 运算符,但我想知道这是否是唯一的可能性。我想一定还有另一种方法,例如使用 @FXML 注释器“获取”按钮,然后复制它。

最佳答案

我相信它会失败,因为您试图一遍又一遍地添加相同的按钮。在 for 循环中,每次运行循环中的代码时,您都需要创建一个按钮的实例。

类似于:

@FXML
private void Change(KeyEvent event) throws IOException {
for (int i=0; i<10; i++){
stack.getChildren().add(new Button("test")) ;
}
}

如果我误解了你,请告诉我。

关于instance - JavaFX2 FXML 如何动态添加元素(例如按钮),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11722208/

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