如何在JavaFX中从VBox.getChildren()中转换列表项

时间:2016-08-22 10:41:02

标签: javafx casting children

我有一个VBox,其中添加了许多类型Button的节点。

private final VBox vbox = new VBox();

private final Button b1= new Button("1");
private final Button b2= new Button("2");
private final Button b3= new Button("3");
private final Button b4= new Button("4");

vbox.getChildren().addAll(b1,b2,b3,b4);


有没有办法将其子项目转换为Button类型。

我需要这样的东西:

ObservableList<Button> children = (ObservableList<Button>) vbox.getChildren();

1 个答案:

答案 0 :(得分:3)

如果你使用原始类型,这是可能的。

ObservableList<Button> children = (ObservableList)vbox.getChildren();

但请注意,如果类型不正确或子列表硬编码取决于类型参数的参数的参数类型,则在运行时很容易导致ClassCastException