Java 如何检测给定点是否在特定菜单上
我想检测给定点是否在特定菜单上 我试图通过以下代码来实现这一点,但它给出了null引用错误 (错误-java.lang.NullPointerException) just是菜单文本之外显示的一些内容。例如,这可能是用于保存菜单的软盘。如果没有此类内容,则此属性为Java 如何检测给定点是否在特定菜单上,java,javafx,javafx-8,Java,Javafx,Javafx 8,我想检测给定点是否在特定菜单上 我试图通过以下代码来实现这一点,但它给出了null引用错误 (错误-java.lang.NullPointerException) just是菜单文本之外显示的一些内容。例如,这可能是用于保存菜单的软盘。如果没有此类内容,则此属性为null。这将导致您的异常 如果菜单栏中的其中一个包含用于查找节点的节点(前提是已在菜单栏上执行了布局),则可以查明: 在哪一行获得空指针异常?它将节点m返回为空,在if处出错(m.contains(m.screenToLocal(p)
null
。这将导致您的异常
如果菜单栏
中的其中一个包含用于查找节点的节点(前提是已在菜单栏
上执行了布局),则可以查明:
在哪一行获得空指针异常?它将节点m返回为空,在if处出错(m.contains(m.screenToLocal(p)){并非每个菜单都有一个
图形
。图形是除了菜单文本之外还包含的一些内容,例如保存菜单项的软盘图像……它适用于选项卡标题
// 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;
}
}
for (Node menu : menuBarMain.lookupAll(".menu")) {
if (menu.contains(menu.screenToLocal(p))) {
f = true;
break;
}
}