我有一个包含Vbox的Hbox,每个Vbox本身包含可以添加或删除的其他元素以及一些控制按钮。现在我想在我的模型中添加或删除那些灵活的元素,我需要知道发生了哪些Vbox。
我的尝试是获取Hbox的子项并检查Vbox(发生/更改的位置)在此列表中的位置。然后使用此索引。
public int getId (Action event){
Button button= event.getSource();
Vbox vbox= button.getParent();
Hbox hbox= vbox.getParent();
hbox.getChildrenUnmodifiable();
....//TODO
}
问题是如果我打印hbox.getChildrenUnmodifiable();
它会告诉我:
[VBox @ 1402dd44,Separator @ 4eaff333 [styleClass = separator],Grid hgap = 0.0,vgap = 0.0,alignment = TOP_LEFT]
在我添加其他Vbox之后,只需添加
网格hgap = 0.0,vgap = 0.0,alignment = TOP_LEFT]
一次又一次,并且不再向我显示已添加的Vbox的更多信息。
我使用hbox.getChildren().add(FXMLLoader.load(getClass().getResource("/VBoxElement.fxml")));
现在我想知道这是否是一个正确的方法来获取我正在工作的Vbox的Indexnumber?如果有人有任何建议如何获得我的Hbox的工作索引? 这是我的第一个JavaFX项目,如果我错过了解,可以随意纠正我。
答案 0 :(得分:0)
正如James_D所说:
ObservableList只是java.util.List的子接口,所以你可以 只需调用所有常用方法:indexOf(...),add(..),remove(...), 等 - James_D 5月14日15:41
谢谢,工作得很好。正如我预期的那样,但我搞砸了我的fxml结构,而我添加的fxml不包含VBox作为根元素,它包含一个Grid。网格中的toString()
在输出
hgap=0.0, vgap=0.0, alignment=TOP_LEFT