如何让JavaFX HBox将项目移动到下一行?

Cli*_*ote 4 java javafx javafx-2

我正在尝试显示一个包含复选框列表的HBox.例:

HBox container = new HBox();
for (Weekday day: Weekday.values() )
{
   container.getChildren().add( new CheckBox( day.getName() ) ); 
}
Run Code Online (Sandbox Code Playgroud)

然而,这显示了所有在一行的日子,如:

Sunday Monday Tuesday Wednesday Thursday Friday Saturday
Run Code Online (Sandbox Code Playgroud)

窗口不够大,无法在一行显示所有窗口,因此我得到一个水平滚动条.我需要的是显示两行的日子,例如:

Sunday Monday Tuesday Wednesday
Thursday Friday Saturday
Run Code Online (Sandbox Code Playgroud)

我试过container.setPrefWidth()但它只是让它显示Su.., Mo..截断文本而不是将它们移动到下一行.

doo*_*ine 13

您应该尝试使用FlowPane.我试了一下,得到了你一直在寻找的结果.

HBox布局窗格提供了在一行中排列一系列节点的简便方法

...

FlowPane布局窗格中的节点将连续布局并包装在窗格的边界集中.节点可以垂直(以列为单位)或水平(以行为单位)流动.垂直流窗格包裹在窗格的高度边界处.水平流窗格包裹在窗格的宽度边界处.

来源:http://docs.oracle.com/javafx/2/layout/builtin_layouts.htm#CHDGHCDG (这是一个有用的读物​​)