有时我们想让鼠标点击Java桌面应用程序界面的任何地方都能实现拖动功能,而不止限于标题栏,下面几行代码就能实现之,其实很简单,只需将当前界面的坐标加上鼠标移动的距离即可.
首先写一个类,继承MouseListener, MouseMotionListener,其他方法体里面不需要写代码,只需在mousePressed()和mouseDragged()方法里写些代码即可(省略了部分代码):
int startX ,startY;
Component c;
public DraggingListener(Component c) {
this.c = c;
}
public void mousePressed(MouseEvent e) {
startX = e.getX();//开始移动时界面左上角X坐标
startY = e.getY();//开始移动时界面左上角Y坐标
}
public void mouseDragged(MouseEvent e) {
Point p = e.getPoint();
int addX = p.x - startX;//X轴上移动的距离
int addY = p.y - startY;//X轴上移动的距离
Point old = c.getLocation();
c.setLocation(old.x + addX, old.y + addY);
}
然后为你的主框架注册事件监听器:
DraggingListener listener = new DraggingListener(this);
this.addMouseListener(listener);
this.addMouseMotionListener(listener);
OVER!!
本文介绍了一种简单的方法,使Java桌面应用程序可以实现在任意位置进行拖动。通过自定义MouseListener和MouseMotionListener,记录鼠标按下时的位置,并在鼠标拖动时更新组件的位置。
714

被折叠的 条评论
为什么被折叠?



