Java 为JToolBar添加MouseListener(事件是否已使用?)

Java 为JToolBar添加MouseListener(事件是否已使用?),java,swing,mouseevent,mouse-listeners,jtoolbar,Java,Swing,Mouseevent,Mouse Listeners,Jtoolbar,将鼠标侦听器添加到JToolBar时 jToolbar.addMouseListener(new MouseInputAdapter() { @Override public void mouseClicked(MouseEvent e) { log.debug(e.getPoint()); } }); 仅当在JToolBar的抓取器外部单击时,事件才会激发 如果我重写BasicToolBarUI的createDockingListener(): 单击夹

将鼠标侦听器添加到JToolBar时

jToolbar.addMouseListener(new MouseInputAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) {
        log.debug(e.getPoint());
    }
});
仅当在JToolBar的抓取器外部单击时,事件才会激发

如果我重写BasicToolBarUI的createDockingListener():

单击夹持器时,事件将触发


所以我的问题是,为什么?MouseeEvent是否已在dockingListener中使用?但是我没有看到任何代码使用该事件。

由于许多不同的原因,
容器会自动使用
MouseEvent

最明显的是在
private
方法
Container#processMouseEvent
中,但在此之前可以使用它

这基本上意味着,当您将
MouseListener
附加到任何组件时,它将使用它位于上面的任何组件(或其部分)的所有鼠标事件


想想鼠标事件,比如雨。当雨滴击中某物时,它会停止。

它可能会被事件处理队列自动消耗
@Override
protected MouseInputListener createDockingListener() {
    return new MouseInputAdapter() {
        @Override
        public void mousePressed(MouseEvent evt) {
            log.debug(e.getPoint());
        }
    }
}