如何检测给定点是否在特定菜单上

时间:2016-07-18 08:42:08

标签: java javafx javafx-8

我想检测给定点是否在特定菜单上。

我尝试通过以下代码执行此操作,但它会出现空引用错误。

(错误 - java.lang.NullPointerException)

    // p : is point
    // f : is flag (boolean variable)
    for (Menu menu : menuBarMain.getMenus()) {
        Node m = menu.getGraphic();
        if (m.contains(m.screenToLocal(p))) {
            f = true;
            break;
        }
    }

1 个答案:

答案 0 :(得分:1)

graphic property只是在菜单文本之外显示的一些内容。这可以是例如是一个保存菜单的软盘。如果没有此类内容,则此属性为null。这导致您的例外。

如果MenuBar中的MenuButtons之一包含使用lookupAll的节点来查找节点(如果已在{{1上执行了布局),您可以找到}}):

MenuBar