Javafx控件EventHandler MouseClicked所有isxDown()方法为false

Javafx控件EventHandler MouseClicked所有isxDown()方法为false,java,javafx,eventhandler,Java,Javafx,Eventhandler,我不能只知道点击了哪个按钮,因为下面所有的方法都返回false。我试图在HBox控件上获取单击类型,并使用下面的代码。如何区分右击和左击 hb.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> { System.out.println("Meta Down?" + event.isMetaDown()); System.out.println("Middle Down?" + event.

我不能只知道点击了哪个按钮,因为下面所有的方法都返回false。我试图在
HBox
控件上获取单击类型,并使用下面的代码。如何区分右击和左击

     hb.addEventHandler(MouseEvent.MOUSE_CLICKED, event ->
    {
        System.out.println("Meta Down?" + event.isMetaDown());
        System.out.println("Middle Down?" + event.isMiddleButtonDown());
        System.out.println("Primary Down?" + event.isPrimaryButtonDown());
        System.out.println("Secondary Down?" + event.isSecondaryButtonDown());
        System.out.println("Synthesized?" + event.isSynthesized());
    }
输出


它们都没有关闭的原因是,当按下鼠标按钮然后释放时,会调用MouseClicked,换句话说,这是一个鼠标按下事件,然后是一个鼠标释放事件

如果您需要知道是什么触发了它,请查看
事件.getButton()
并查看它是否是
鼠标按钮中的任何一个。尝试将代码更改为以下内容:

hb.addEventHandler(MouseEvent.MOUSE_CLICKED, event ->
{
    System.out.println("Middle Clicked?" + event.getButton()== MouseButton.MIDDLE);
    System.out.println("Primary Clicked?" + event.getButton()== MouseButton.PRIMARY);
    System.out.println("Secondary Clicked?" + event.getButton()== MouseButton.SECONDARY);
    System.out.println("None Clicked?" + event.getButton()== MouseButton.NONE);
}

它们都没有关闭的原因是,当按下鼠标按钮然后释放时,会调用MouseClicked,换句话说,这是一个鼠标按下事件,然后是一个鼠标释放事件

如果您需要知道是什么触发了它,请查看
事件.getButton()
并查看它是否是
鼠标按钮中的任何一个。尝试将代码更改为以下内容:

hb.addEventHandler(MouseEvent.MOUSE_CLICKED, event ->
{
    System.out.println("Middle Clicked?" + event.getButton()== MouseButton.MIDDLE);
    System.out.println("Primary Clicked?" + event.getButton()== MouseButton.PRIMARY);
    System.out.println("Secondary Clicked?" + event.getButton()== MouseButton.SECONDARY);
    System.out.println("None Clicked?" + event.getButton()== MouseButton.NONE);
}