我提供了一种方法来拖动任何我想要的Component甚至是JFrame

我使用MouseInputAdapter进行功能定义

我使用鼠标事件和鼠标运动事件

public static void Mover(final Component obj, final boolean info) {

        MouseInputAdapter d = new MouseInputAdapter() {
            int x, X, y, Y;

            @Override public void mousePressed(MouseEvent e) {
                if (SwingUtilities.isLeftMouseButton(e)) {
                    x = e.getXOnScreen();
                    X = obj.getLocation().x;
                    y = e.getYOnScreen();
                    Y = obj.getLocation().y;
                }
            }

            @Override public void mouseDragged(MouseEvent e) {
                if (SwingUtilities.isLeftMouseButton(e)) {
                    obj.setLocation(X + (e.getXOnScreen() - x), Y + (e.getYOnScreen() - y));
                }
            }
        };
        obj.addMouseListener(d);
        obj.addMouseMotionListener(d);
    }


那么MouseInputAdapter和MouseAdapter有什么区别?
有什么更好的?

感谢您的建议和解答

最佳答案

那么MouseInputAdapter有什么区别


来自MouseInputAdapter包的javax.swing.event扩展了MosueAdapter并实现了MouseInputListener,该MouseListenerMouseMotionListenerMouseAdapter扩展

java.awt.event,从MouseListener包中实现MouseWheelListenerMouseMotionListenerMouseInputListener

我会说MouseWheelListener不支持MouseInputAdapter,因此,如果您对鼠标滚轮事件不感兴趣,那么这可能是一个合适的侦听器,但是由于MouseAdapter是从扩展的,因此整个观点都是静音的...


和MouseAdapter?有什么更好的?


两者都可以。

07-25 22:46