Java Detect Mouse Click 在窗口中的任何位置在某些区域不起作用

Posted

技术标签:

【中文标题】Java Detect Mouse Click 在窗口中的任何位置在某些区域不起作用【英文标题】:Java Detect MouseClick anywhere in Window doesn't work in certain areas 【发布时间】:2014-06-12 15:45:57 【问题描述】:

所以我有一个 Java Swing 程序,我希望能够检测鼠标点击。

addMouseListener(new java.awt.event.MouseAdapter() 
    public void mouseClicked(java.awt.event.MouseEvent evt) 
        update(evt); //another method in the program
    
);

如果我单击窗口的一侧或没有对象的地方,该代码将起作用,但当我单击 JFrame 中的对象(例如我的 JTable 或我的文本字段)时,该代码将不起作用。

请帮助我如何让 MouseListener 在 JFrame 内的对象上工作。

【问题讨论】:

MouseListener 的意义何在,它有什么作用? MouseListener 检测鼠标事件,例如鼠标移动和鼠标点击。 @Brandon Nguyen,我是 Java 中 GUI 的新手,但我想 JFrame 中的组件(例如您的文本框等)也需要具有相同的鼠标侦听器来调用该方法 更新(evt)。我无法想象这不起作用,但我真的不确定,因为我没有时间测试。可能有一个我不知道的更简单的方法,所以我希望你能得到一个好的答案。 @nixxbb 是的,但是将监听器添加到每个对象会很痛苦。 我知道了,希望你能得到一个好的答案。如果我以后有时间玩它,我会回来看看...... 【参考方案1】:

当您单击文本字段时,文本字段会获得焦点。这意味着您的框架失去了焦点的所有权,并且由于您的侦听器很可能已添加到您的框架中,因此当框架未获得焦点时,您的侦听器将停止正常工作。将您的侦听器添加到所有组件中,或使用键绑定

【讨论】:

哦,这就解释了原因。谢谢。那我得增加更多的听众了。

以上是关于Java Detect Mouse Click 在窗口中的任何位置在某些区域不起作用的主要内容,如果未能解决你的问题,请参考以下文章

extjs spinner _ on mouse click 警报在窗口后面

Processing a Trillion Cells per Mouse Click

DESCRIBE:When you mouse click right-side is open an application and click left-side is attribution.

“event.target as Checkbox”通过 Mouse CLICK 事件传递“selected”属性的不同值

React + TS 中实现鼠标水平拖动,横向滚动 | Mouse click and Drag Instead of Horizontal Scroll bar

React + TS 中实现鼠标水平拖动,横向滚动 | Mouse click and Drag Instead of Horizontal Scroll bar