我提供了一种方法来拖动任何我想要的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
,该MouseListener
从MouseMotionListener
和MouseAdapter
扩展java.awt.event
,从MouseListener
包中实现MouseWheelListener
,MouseMotionListener
和MouseInputListener
我会说MouseWheelListener
不支持MouseInputAdapter
,因此,如果您对鼠标滚轮事件不感兴趣,那么这可能是一个合适的侦听器,但是由于MouseAdapter
是从扩展的,因此整个观点都是静音的...
和MouseAdapter?有什么更好的?
两者都可以。