我动态创建了一堆按钮。我为每个人都给了一个固定的宽度。我希望它被添加到其父级可用空间,并且当它与其他一些节点重叠时,它将自动转到下一行以避免冲突。我希望它能在不同的屏幕尺寸下做出响应。
for(Data i:datas){
Button btn=new Button(i.getName());
anchorPane.getChildren().addAll(btn);
}
我想仅在第一行中的按钮覆盖其总宽度时才在新行中排列按钮。我怎么能完成它?任何帮助表示赞赏。
答案 0 :(得分:0)
James_D提供了一个很好的资源 - 有一个内置的布局可以满足您的任何需求,FlowPane可以满足您的需求。
使用您的示例,只需将您的AnchorPane替换为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());