栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

实现无标题栏窗口的拖动

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实现无标题栏窗口的拖动

SWT窗口程序默认是带标题栏的,窗口栏有最小化、最大化、关闭按钮,我们可以拖动标题栏实现窗口的移动

此时窗口不能拖动了,只能通过加监听事件实现

当我们加入下面这段代码,就能实现窗口的拖动了,如果窗口的上方没有任何控件覆盖,这时窗口的任何地方都能产生拖动效果,如果有覆盖,则覆盖的地方不能产生拖动效果。

 //给窗口加监听 事件
		Listener listener = new Listener() {  
		    int startX, startY;  
			@Override
			public void handleEvent(Event arg0) {
				if (arg0.type == SWT.MouseDown && arg0.button == 1) {  
		            startX = arg0.x;  
		            startY = arg0.y;  
		        }  
		        if (arg0.type == SWT.MouseMove && (arg0.stateMask & SWT.BUTTON1) != 0) {  
		            Point p = shell.toDisplay(arg0.x, arg0.y);  
		            p.x -= startX;  
		            p.y -= startY;  
		            shell.setLocation(p);  
		        } 
				
			}  
		};  
		shell.addListener(SWT.MouseDown, listener);    //鼠标按下
		shell.addListener(SWT.MouseMove, listener);    //鼠标移动
 
            //从而实现鼠标拖动窗口

如果想让shell上方的控件也能产生拖动窗口拖动效果,只需要给对应的控件加上监听就行,如:

//给label加上监听
label.addListener(SWT.MouseDown, listener);  
label.addListener(SWT.MouseMove, listener);  

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号