在我的项目中,我有一个包含 5 列的 TreeTableView。我需要为每一列使用不同的上下文菜单。我在 Source Builder 中为每一列创建了一个 ContextMenu(在示例中,您只看到一个用于“值”列),但菜单仅在右键单击列标题时出现,但我需要菜单仅在右键单击单元格时出现价值
<TreeTableView fx:id="valueTable" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<columns>
<TreeTableColumn fx:id="context" prefWidth="483.20001524686813" sortable="false" text="Context" />
<TreeTableColumn fx:id="tag" minWidth="50.0" prefWidth="90.0" sortable="false" text="Tag" />
<TreeTableColumn fx:id="offset" minWidth="50.0" prefWidth="90.0" sortable="false" text="OffSet" />
<TreeTableColumn fx:id="lenght" minWidth="50.0" prefWidth="90.0" sortable="false" text="Lenght" />
<TreeTableColumn fx:id="value" prefWidth="367.99993896484375" sortable="false" text="Value">
<contextMenu>
<ContextMenu fx:id="contextMenuValue" >
<items>
<MenuItem mnemonicParsing="false" text="Action 1" />
<MenuItem mnemonicParsing="false" text="Action 2" />
<MenuItem mnemonicParsing="false" text="Action 3" />
<MenuItem mnemonicParsing="false" text="Action 4" />
</items>
</ContextMenu>
</contextMenu>
</TreeTableColumn>
</columns>
</TreeTableView>
我尝试添加此代码以检查 MouseClick 事件,但事件仅在 TreeTableView“valueTable”而不是 TreeTableColumn“value”上被拦截。
value.addEventHandler(MouseEvent.MOUSE_CLICKED, (MouseEvent e) -> {
System.out.println("Work Cell");
});
valueTable.addEventHandler(MouseEvent.MOUSE_CLICKED, (MouseEvent e) -> {
System.out.println("Work Table");
});
你能帮助我吗?看待。