Java 为JToolBar添加MouseListener(事件是否已使用?)
将鼠标侦听器添加到JToolBar时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.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());
}
}
}