在鼠标单击上检测JavaFX选项卡(标签)

在鼠标单击上检测JavaFX选项卡(标签),java,javafx,Java,Javafx,我在javaFX中使用了一个选项卡窗格,下面是一张图片: 当用户右键单击选项卡的标签时,应该会显示Costum contextMenu。但我不想为每个选项卡添加.setContextMenu(…),而是使用如下内容: tabPane.setOnMouseClicked(m -> { if (m.getButton() == MouseButton.SECONDARY) { Node pick = m.getPickResult().getInter

我在javaFX中使用了一个选项卡窗格,下面是一张图片:

当用户右键单击选项卡的标签时,应该会显示Costum contextMenu。但我不想为每个选项卡添加.setContextMenu(…),而是使用如下内容:

tabPane.setOnMouseClicked(m -> {
        if (m.getButton() == MouseButton.SECONDARY) {
            Node pick = m.getPickResult().getIntersectedNode();
            for (Tab tab : getTabs()) {
                if (pick.toString().contains(tab.getText())) {

                    contextMenu.show(tab, m.getScreenX(), m.getScreenY());
                    break;
                }

            }
        }
    });
但是我不知道如何使用pickResult来实现这一点

为什么
。我这样做是因为选项卡可能有数百个,我不想花费太多内存为每个选项卡添加新的上下文菜单,所以每次我只使用一个不同的选项卡。

为什么不创建一个上下文菜单并设置它(相同的一个)在所有选项卡上?一个静态实例可以转到多个选项卡上?现在是否有办法每次单击哪个选项卡(标签)时(右键)都可以转到该选项卡上?我不会将其设置为静态的,但我不明白为什么不能将同一实例传递到多个选项卡上。你试过了吗?@James_D当标签有一百个时,在每个标签上设置一个上下文菜单(我有一个有很多变量的costude类),这会比只有一个静态上下文菜单消耗更多内存。但是有没有办法知道每次我(右)点击哪个标签?这就是我的观点……嗯,我不一定认为内存消耗会很大,但无论如何,我是说你应该对每个选项卡使用相同的
ContextMenu
。(这与
静态
完全无关)