【Java】swt中为了实现用鼠标拖动无边框窗口
想了好久,为了实现用鼠标拖动无边框窗口,下面是实现代码。但是存在拖动时窗口移动越来越快和一次按下鼠标只能往一个方向拖动的问题。大家帮我看看bug在哪里?...
想了好久,为了实现用鼠标拖动无边框窗口,下面是实现代码。但是存在拖动时窗口移动越来越快和一次按下鼠标只能往一个方向拖动的问题。大家帮我看看bug在哪里?
展开
2个回答
展开全部
问题其实很简单,只是被绕进去了,呵呵。
少记录了一组变量,开始时的窗口位置,示例代码如下:
protected int dragStartMX, dragStartMY;// 开始拖动时的鼠标位置
protected int dragStartWX, dragStartWY;// 开始拖动时的窗口位置
// .........................
setLocation(dragStartWX + curMouseX - dragStartX
, dragStartWY + curMouseY - dragStartY);
展开全部
你的xx直接e.x来获取就行了 yy也是同样道理
2.下面的MouseInfo.getPointerInfo().getLocation().x也直接用arg.x来获取 3.建议用 int X = shellq.getShell().getLocation().x;
int Y = shellq.getShell().getLocation().y; 获取点击时窗口位置
4.最后shell.getShell().setLocation(X+arg0.x-xx,Y+arg0.y-yy);就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询