即使点击面板上的孩子,也可以检测鼠标点击JPanel

far*_*ich 3 java swing

我的代码有一个JPanel,它包含一个覆盖大部分JPanel的JTextPane.如果事件发生在面板中的任何地方,我想检测鼠标单击,但JTextPane会阻止该事件,除非我向其注册一个监听器.是否有一些简单的方法来观察事件而不为每个孩子添加听众?

cam*_*ckr 7

您可以使用全局事件侦听器来侦听鼠标事件.

您可以使用:

SwingUtilities.isDescendingFrom(...);
Run Code Online (Sandbox Code Playgroud)

帮助确定生成事件的组件是否是面板的子组件.

  • 回答问题是一种很好的学习方式.您可以在论坛中获取提示并了解其他人的课程.每当我听到一个新课程时,我都会查看其他可能有用的方法的API.当然问题是当你不经常使用它们时记住它们:) (2认同)