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