0

我想问JLabel has一下mouseMotionListener.

我使用to withaddAWTEventListener方法来运行它,它将能够知道鼠标在哪个控件上。一切正常,但JLabel , JPanel 和其他人没有。Toolkit.getDefaultToolkit()MOUSE_MOTION_EVENT_MASKjButton, jFrame, jTextfield

如果我添加到JLabel上面的代码

lblNewLabel_1.addMouseMotionListener(new MouseMotionAdapter() {
        @Override
        public void mouseMoved(MouseEvent e) {
        }
    });

有用。

我必须添加类似于现在没有的所有控件的东西MouseMotionListener

4

1 回答 1

0
  public class something implements MouseMotionListener{    

      public something(){
        button.addMouseMotionListener(this);
        frame.addMouseMotionListener(this);
        panel.addMouseMotionListener(this);
        JTextField.addMouseMotionListener(this);          
      }   

//MouseMotionListener methods

     @Override
     public void mouseDragged(MouseEvent e) {    
        // TODO Auto-generated method stub          
    }

    @Override
    public void mouseMoved(MouseEvent e) {    
        // TODO Auto-generated method stub          
    }     
}

是的,如果您期望它们执行操作,则必须添加 mouseOrMotion 侦听器或操作侦听器

当您想将 JLabel 添加到窗口时,不要直接添加它,而是先将 JLabel 添加到 JPanel,然后再添加 window.add(panel)。因为JLabel 是轻量级组件,而JFrame 是重量级的,可能会给你的监听器带来很多问题。

如果这还不够,请告诉我...

于 2015-02-10T18:34:02.887 回答