0

我有一个主 JPanel,上面有两个其他 JPanel(面板 A 和面板 B),如下图所示:

在此处输入图像描述

我想跟踪这些 JPanel 上的 mouseDragged 事件,目前我正在为所有 3 个 JPanel 跟踪它:

mainPanel.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
    public void mouseDragged(java.awt.event.MouseEvent evt) {

    }
});

panelA.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
    public void mouseDragged(java.awt.event.MouseEvent evt) {

    }
});

panelB.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
    public void mouseDragged(java.awt.event.MouseEvent evt) {

    }
});

有没有办法通过只注册 1 个侦听器而不是我上面的 3 个来跟踪所有 3 个 JPanel 的 mouseDragged 事件?谢谢

4

1 回答 1

3
class MyMouseMotionListener implements MouseMotionListener{
    public void mouseDragged(java.awt.event.MouseEvent evt) {

    }
}

...

MouseMotionListener myListener = new MyMouseMotionListener();

mainPanel.addMouseMotionListener(myListener);
panelA.addMouseMotionListener(myListener);
panelB.addMouseMotionListener(myListener);
于 2012-11-06T15:27:28.373 回答