【发布时间】:2016-12-18 21:30:39
【问题描述】:
我有一个JPanel,里面有很多JButton 组件。有没有办法在按下按钮时获取面板鼠标事件?另一种观点:如何使按钮对面板鼠标事件透明?我特别需要捕获面板的mousePressed() 事件。
编辑
背景:
我正在通过JScrollPane(实际工作)拖动面板内容,以完成我需要捕获按下鼠标的点,因此面板和按钮都有MouseListener 和MouseMotionListener 来捕获点并执行其他东西。
问题: 当我按下 -> 拖动 -> 释放鼠标按钮时,如果鼠标仍在按钮上方,它将执行按钮的任何操作。所以我希望面板的鼠标侦听器与按钮“独立”,以便从按钮中删除鼠标侦听器。
编辑 2
我刚刚意识到阅读我自己的问题......将 MouseListener 删除到 JButton 没有任何区别。如果鼠标悬停在按钮上,按下按钮时,无论如何都会执行 actionPerformed ......我该怎么办?
编辑 3 根据解决方案编辑问题标题。
【问题讨论】:
-
可能与以下内容重复:stackoverflow.com/questions/16431455/…
-
为什么需要它?你想达到什么目标?
-
@SergiyMedvynskyy 提出了几个很好的问题。另见What is the XY problem?
-
“我正在通过
JScrollPane拖动面板内容”JScrollBar对此更好。它代表了最终用户的“最不意外的路径”,并使其余部分变得多余。 -
@Andrew Thompson 我正在使用触摸屏,为了便于访问,拖动内容会更容易,
标签: java swing mouseevent