MouseWheelListener不';t工作-Java

MouseWheelListener不';t工作-Java,java,swing,Java,Swing,我试图抓住鼠标滚轮事件,但没有成功。这是我的主要课程: import java.awt.Dimension; import javax.swing.JFrame; public class Main extends JFrame { public Main() { Panel pan = new Panel(); add(pan); } public static void main(String[] args) {

我试图抓住鼠标滚轮事件,但没有成功。这是我的主要课程:

import java.awt.Dimension;
import javax.swing.JFrame;

public class Main extends JFrame {

    public Main() {
        Panel pan = new Panel();
        add(pan);
    }



    public static void main(String[] args) {

        Main wnd = new Main(); 

        wnd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        wnd.setPreferredSize(new Dimension(500, 500));
        wnd.pack();
        wnd.setVisible(true);

    }

}
这是实现鼠标滚轮侦听器的JPanel类:

import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;

import javax.swing.JPanel;

public class Panel extends JPanel implements MouseWheelListener {

    public Panel() {
        // TODO Auto-generated constructor stub
    }

    @Override
    public void mouseWheelMoved(MouseWheelEvent e) {
        System.out.println("scrolled");

    }

}

当JFrame打开时,当我滚动鼠标滚轮时没有任何事件。我做错了什么?

好的,多亏了我的评论,我解决了这个问题。我加了一行:

addMouseWheelListener(this);

在面板的构造函数中。

您是否将面板注册为MouseMotionListener?我看不出您在何处添加了任何类型的侦听器。你看过相应的教程了吗?也许你应该看看类面板扩展JPanel实现MouseWheelListener看看教程。如果不将控制盘侦听器添加到适当的组件,则实现将不会执行任何操作。