gpt4 book ai didi

java - 为 JToolBar 添加 MouseListeners(事件被消耗?)

转载 作者:行者123 更新时间:2023-11-29 05:37:41 25 4
gpt4 key购买 nike

将 MouseListener 添加到 JToolBar 时,

jToolbar.addMouseListener(new MouseInputAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
log.debug(e.getPoint());
}
});

只有在 JToolBar 的抓取器外单击时才会触发该事件。

如果我覆盖 BasicToolBarUI 的 createDockingListener():

@Override
protected MouseInputListener createDockingListener() {
return new MouseInputAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
log.debug(e.getPoint());
}
}
}

点击抓取器时将触发该事件。

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

最佳答案

MouseEventContainer 出于多种不同的原因在多个点自动使用(一些与 native 对等点需要如何处理事件)...

最值得注意的是在 private 方法 Container#processMouseEvent 中,但在此之前可以使用它

这基本上意味着,当您将 MouseListener 附加到任何组件时,它将消耗所有鼠标事件,这些事件将发送到它驻留在上面的任何组件(或其一部分)。

将鼠标事件想象成下雨。当雨滴碰到某物时,它就会停止。

关于java - 为 JToolBar 添加 MouseListeners(事件被消耗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18885981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com