我在我的 JFrame 中添加了一个 MouseMotionListener 来控制从我的 jframe 中的所有对象到达的所有鼠标运动消息,但是当我将鼠标移到 JLayeredPane 上时,没有产生任何消息。请帮助我在我的 JFrame 中添加一个中央 MouseMotionListener 以控制来自其中所有对象的所有消息。
非常感谢。
最佳答案
下面是递归地向所有组件添加 MouseMotionListener 的代码。请注意,为了处理生成的 MouseEvent,您需要使用 SwingUtilities 将 Point 从特定组件的空间转换到 JFrame 的空间。
public static void installMouseMotionListenerOnAll(Component c, MouseMotionListener mml) {
c.addMouseMotionListener(mml);
if (c instanceof Container) {
for (Component child : ((Container)c).getComponents()) {
installMouseMotionListenerOnAll(child, mml);
}
}
}
关于java - Java 中的中央 MouseMotionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37485677/