Che*_*eng 0 java mouse events jpanel
我有一个JPanel,我想检测以下事件
(1)当鼠标移入时
(2)当鼠标移出时
(1)很容易.(2)有点棘手.目前,我必须在JPanel周围的所有组件上注册事件.如果JPanel周围的邻居在事件中检测到鼠标移动,这也意味着JPanel有(2)情况.然而,这是相当肮脏的,因为我将来添加新的组件,这个肮脏的解决方法将破裂.
另一种方法是使用计时器来监视JPanel.如果鼠标位置在x秒内不在JPanel内,我可以考虑JPanel有鼠标移出事件.
然而,这对我来说似乎也是一种肮脏的方式,因为有一个单独的计时器来执行这样的常见任务是过度的.
Java平台可能提供哪种更好的方法?
让您的类实现MouseListener并将其作为鼠标侦听器添加到最外面的面板上.当鼠标在面板上移动时,您应该获得鼠标输入事件,并在鼠标离开时退出鼠标; 无论面板包含哪些组件.
来自JavaDoc:
void mouseEntered(MouseEvent e)鼠标进入组件时调用.
void mouseExited(MouseEvent e)当鼠标退出组件时调用.
| 归档时间: |
|
| 查看次数: |
2842 次 |
| 最近记录: |