Luc*_*gan 4 java swing jcomponent mouseevent mouselistener
我有一个JPanel添加的网格JLabels.我想要MouseListener听一听MouseEvents,但是当点击a所在的位置时,JLabels似乎是在路上而且没有MouseEvent火灾JLabel.
有没有一种方便的方式来听MouseEvents一个组件的孩子?
MouseEvents被分派到为它们启用的最顶层(按z顺序)组件,其上注册了mouseListener或在内部设置了eventMask来处理它们.虽然通常JLabel是透明的(因此事件应该到达底层面板),但是通过设置工具提示,它们可能会使事件不透明.
在jdk 7中,您可以使用JLayer来获取传递给其子级的所有(鼠标)事件.文件JLayer说:
如果您只需要对复合组件进行自定义绘制或从子组件捕获输入事件,则JLayer是一个很好的解决方案.
它的前身是jdk6,是SwingLabs中的JXLayer项目.另一种选择是使用AWTEventListener,如Rob的博客中所述(注意:在安全限制的上下文中可能不允许)