JavaFX使用fx:id或id将节点动态添加到窗格

时间:2015-12-11 19:53:22

标签: javafx fxml

我可以在窗格上创建带有for for next循环的节点,但是没有能力 为这些节点分配一个fx:id或id 这可能是第一吗?如果是这样,我需要添加到我的代码中? 或者我可以选择使用for next循环将信息写入FXML文件吗?

<div id="r"/>

1 个答案:

答案 0 :(得分:1)

fx:id只是一种机制,用于获取对FXML中定义的元素的引用。如果您仍然在控制器中定义节点,则根本不需要(或实际上,无法使用)fx:id

您在创建时已经引用了Circle。所以,只要在那里做任何你需要的事情。这是一个简单的例子(我清理了你的代码,使其更简洁):

private void makeNode() {
    for (int circleIndex = 0 ; circleIndex < 42 ; circleIndex++) {
        int column = circleIndex % 7 ;
        int row = circleIndex / 7 ;
        double x = 40 + 120 * column ;
        double y = 40 + 120 * row ;
        Circle circle = new Circle(x, y, 16);
        circle.setFill(Color.YELLOW);
        circle.setStroke(Color.BLACK);
        circle.setStrokeWidth(4.0);
        pane.getChildren().add(circle);

        circle.setOnMouseClicked(e -> {
            System.out.println("Clicked on ["+column+", "+row+"]");
        });
    }
}