Java MouseEvents无法正常工作

这可能是一个愚蠢的问题,但我不得不问!

我有以下代码片段,当用户与对象交互时,它们应该运行相应的方法.
出于某种原因,“foo”从不打印,但“bar”是.

myJSpinner1.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseEntered(java.awt.event.MouseEvent evt) {
    System.out.println("foo"); //"foo" is not printed
  }
});

myJSpinner2.addChangeListener(new java.awt.event.ChangeListener() {
    public void stateChanged(java.awt.event.ChangeEvent evt) {
    System.out.println("bar"); //"bar" is printed
  }
});

我没有异常或堆栈跟踪.我在MouseListener中缺少什么?
提前致谢.

编辑:MouseEntered完全适用于以完全相同的方式实现的JCheckBox!

最佳答案
JSpinner是一个复合组件,由文本字段和2个按钮组成.通过迭代getComponents()的结果并为每个人添加一个监听器,可以将鼠标监听器添加到所有这些监听器.

然而,根据我的经验,当某些东西需要那么多工作时,你可能会采取错误的方式.

为什么需要JSpinner的鼠标输入信息?
你想对这个活动做什么?

更新:
如果您希望提供有关面板中所有控件的信息,您可能需要查看使用玻璃板来检测鼠标下的组件.

0760 by Alexander Potochkin是一个很好的起点.

转载注明原文:Java MouseEvents无法正常工作 - 代码日志