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

标签 instance javafx-2 building fxml

所以,我想要做的是,使用 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/

相关文章:

java - 即使 session 失效后,Action 类对象如何仍然可用?

java - 如何在 JavaFX 2.0 中创建几何形状?

JavaFX 从 TabContent(Node) 访问 Tab 或 TabPane

go - 在不同的 go 版本之间需要导入对象

c# - 除非删除 bin/obj 文件夹,否则 Xamarin.ios 不会生成

windows - 为什么 Windeployqt 输出不需要的文件,如何删除它们?

C# 如何创建类的特殊实例?

Java:抽象类中的静态方法调用抽象非静态方法?

java - 实例方法的例子? ( java )

java - 在 JavaFX 中的 PathTransition 方面需要帮助