Javafx 获取控制器类的HBox元素的Indexnumber
我有一个Hbox,其中包含Vbox,每个Vbox本身包含可以添加或删除的其他元素以及一些控制按钮。现在,我想在我的模型中添加或删除这些灵活的元素,我需要知道这是在哪个Vbox中发生的 我的尝试是获取Hbox的子项,并检查发生/更改的Vbox在该列表中的位置。然后再使用这个索引Javafx 获取控制器类的HBox元素的Indexnumber,javafx,javafx-8,Javafx,Javafx 8,我有一个Hbox,其中包含Vbox,每个Vbox本身包含可以添加或删除的其他元素以及一些控制按钮。现在,我想在我的模型中添加或删除这些灵活的元素,我需要知道这是在哪个Vbox中发生的 我的尝试是获取Hbox的子项,并检查发生/更改的Vbox在该列表中的位置。然后再使用这个索引 public int getId (Action event){ Button button= event.getSource(); Vbox vbox= button.getParent(); H
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=分隔符],栅格hgap=0.0,vgap=0.0,对齐=左上角]
在我添加其他Vbox之后,它只添加
网格hgap=0.0,vgap=0.0,对齐=左上方]
一次又一次地退出,但没有向我显示已添加的VBoxe的更多信息
我使用hbox.getChildren().add(fxmloader.load(getClass().getResource(“/VBoxElement.fxml”))从另一个.fxml文件加载Vboxes代码>
现在我想知道这是否是一种获取我正在使用的Vbox的Indexnumber的正确方法?如果有人对如何获取我的Hbox的工作索引有什么建议?
这是我的第一个JavaFX项目,如果我不理解,请随时纠正我。正如James_D所说:
ObservableList只是java.util.List的子接口,因此您可以
只需调用所有常用方法:indexOf(…)、add(…)、remove(…),
etc–詹姆斯·路德5月14日15:41
谢谢,很好。正如我第一次期望的那样,但我弄乱了我的fxml结构,我添加的fxml没有包含VBox作为根元素,它包含一个网格。来自网格的toString()
在输出中生成网格hgap=0.0,vgap=0.0,alignment=TOP_LEFT
observeList
只是java.util.List
的子接口,因此您可以调用所有常用的方法:indexOf(…)
,add(…)
,remove(…)
,等等