如何从组合框单元格中获取对象?

How to get object from combobox cell?

我有 ComboBox 个对象,GridPane 设置为显示组合框列表的图形。 GridPane 有 3 列用于图像、项目标签和 StackPane。我想点击StackPane得到这一行对应的对象,但是通过.getParent().getChildrenUnmodifiable().get(0)只能得到label。如果我使用 .getParent().getParent() 将给我一个单击行的单元格。如果我只是更改组合框的选择,我可以正常检索对象。但是如何获取对象,单击了哪个堆栈窗格?

假设您已在自定义 ListCell 中向 StackPane 添加鼠标单击侦听器而没有问题(因为此鼠标单击事件可能会被组合框行消耗并且不会进一步传播到 stackPane),您可以调用getItem() 在这个鼠标侦听器中访问这个单元格的相关对象。

您所有的布局节点(GridPane、Stackpane 等)都是单元格项目的渲染器。所以你不能通过遍历这个布局图来访问item(对象)。