`

几行代码搞定Java桌面应用程序界面的拖动问题

阅读更多

     有时我们想让鼠标点击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!!

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics