javafx中动态添加按钮的放置

javafx中动态添加按钮的放置,java,javafx,Java,Javafx,我动态地创建了一组按钮。我给了他们每个人一个固定的宽度。我希望添加它,直到其父节点有可用的空间,并且当它与其他一些节点重叠时,它将自动转到下一行以避免冲突。我希望它能够在不同的屏幕尺寸下响应 for(Data i:datas){ Button btn=new Button(i.getName()); anchorPane.getChildren().addAll(btn); } 我只想在第一行中的按钮已覆盖其总宽度时,将按钮排列在新行中。我怎样才能做到呢?非常感谢您的帮助。James\

我动态地创建了一组按钮。我给了他们每个人一个固定的宽度。我希望添加它,直到其父节点有可用的空间,并且当它与其他一些节点重叠时,它将自动转到下一行以避免冲突。我希望它能够在不同的屏幕尺寸下响应

for(Data i:datas){
  Button btn=new Button(i.getName());
  anchorPane.getChildren().addAll(btn);
}

我只想在第一行中的按钮已覆盖其总宽度时,将按钮排列在新行中。我怎样才能做到呢?非常感谢您的帮助。

James\u D提供了一个很好的资源,它有一个内置的布局,可以满足您的任何需要,FlowPane也可以满足您的需要

使用您的示例,只需将锚链换成FlowPane:

FlowPane flowPane = new FlowPane();

for(Data i:datas){
  Button btn=new Button(i.getName());
  flowPane.getChildren().addAll(btn);
}
要使其响应(即与父容器/阶段展开和收缩),请将FlowPane的宽度和高度与其父容器/阶段的宽度和高度绑定:

flowPane.prefWidthProperty().bind(stage.widthProperty());
flowPane.prefHeightProperty().bind(stage.heightProperty());

使用一个。更一般地说,请阅读以获得可用的不同布局窗格的概述。您不应该真正需要绑定流窗格的宽度和高度:只需为流窗格的父级使用适当的布局窗格(必要时进行一些配置)。您是对的。在大多数情况下,将其放在锚具或网格窗格中可以调整大小。