对于没有标题栏的Shell,默认是不支持鼠标拖动位置的。不过要想让它支持也是很简单的。如下:
final Point p = new Point(-1, -1);
Listener l = new Listener() {
public void handleEvent(Event arg0) {
switch (arg0.type) {
case SWT.MouseDown:
p.x = arg0.x;
p.y = arg0.y;
break;
case SWT.MouseMove:
if (p.x == -1) {
break;
}
Point point = shell.toDisplay(arg0.x, arg0.y);
shell.setLocation(point.x - p.x, point.y - p.y);
break;
case SWT.MouseUp:
p.x = -1;
p.y = -1;
break;
default:
break;
}
}
};
shell.addListener(SWT.MouseDown, l);
shell.addListener(SWT.MouseMove, l);
shell.addListener(SWT.MouseUp, l);
这其实做了以下几件事:
1。在鼠标按下时,记住鼠标的相对位置
2。在鼠标是按下状态,移动时,获取新的鼠标位置,与相对位置做计算后,设置新的窗口位置
3。最后释放
分享到:
相关推荐
在实际开发中,开发者可以使用Eclipse IDE,因为它内置了对SWT的支持,使得创建和调试SWT应用程序变得更加容易。Eclipse插件开发也广泛依赖SWT,因为它允许开发者创建与Eclipse集成紧密的自定义视图和编辑器。 总结...
在实现GPS实时定位的SWT界面中,开发者需要集成GPS接收器或者使用支持GPS服务的移动设备,通过API接口获取GPS数据,包括经度、纬度、海拔、速度和时间戳等。然后,这些数据可以显示在SWT界面的文本框、标签或者地图...
4. 良好的事件处理机制:SWT支持事件驱动编程,允许开发者响应用户的操作。 5. 跨平台:虽然SWT依赖于特定操作系统的库,但Eclipse项目提供了多个平台的版本,如Windows、Linux、Mac OS等。 在"swt-3.7.2-win32-win...
通过以上介绍,我们可以看出SWT为开发者提供了一套全面的键盘和鼠标事件处理机制,这对于构建功能丰富且用户体验良好的应用程序来说是非常重要的。开发者可以根据不同的需求选择合适的事件监听器,以实现所需的功能...
SWT无边框窗体实现鼠标拖动移动,并添加右键菜单关闭功能
### SWT配置详解 #### 一、SWT简介与配置的重要性 SWT(Standard Widget Toolkit)是一种用于构建基于Java的应用程序的图形用户界面工具包。它提供了丰富的控件集,并能够生成本地外观和感觉的界面,这使得应用在...
它还支持事件驱动编程模型,使得用户交互的处理变得简单。SWT相对于Java的另一GUI框架AWT(Abstract Window Toolkit)和Swing,其优势在于更接近底层操作系统,从而可以实现更快的运行速度和更好的平台一致性。 ...
此外,SWT还支持事件处理,通过实现监听器接口,可以对用户交互做出响应。 SWT Designer是一个可视化的工具,可以帮助开发者更直观地设计和构建SWT界面,它简化了UI设计过程,使得开发者无需手动编写大量布局和组件...
在SWT中,我们可以通过实现`MouseListener`接口来监听鼠标事件。`MouseListener`接口包含三个方法:`mouseDown()`, `mouseUp()`, 和 `mouseDoubleClick()`。在这个例子中,我们关心的是`mouseDoubleClick()`方法。...
4. **社区支持**:相对于AWT和Swing,SWT的社区支持稍弱,这意味着在遇到问题时可能难以找到解决方案。 ### SWT入门 #### HelloWorld示例解析 以下是对SWT HelloWorld示例的详细解析: ```java import org....
Java SWT(Standard Widget Toolkit)是Java平台上用于创建桌面应用程序的一个库,它提供了丰富的用户界面元素,如按钮、文本框、列表等。SWT是Eclipse IDE的基础,它通过与操作系统直接交互来提供本地化的图形用户...
5. **兼容性**: SWT支持多种操作系统,如Windows、Linux、macOS等,为跨平台开发提供了便利。 **使用SWT进行开发** 1. **初始化Display和Shell**: 应用程序开始时,首先创建Display对象,然后创建一个或多个Shell...
本资源包含的"Sample Code"可能是各种基于SWT的实例代码,这些代码涵盖了SWT的各种组件、布局管理、事件处理、对话框、拖放操作、打印、剪贴板支持等高级主题。通过这些源码,我们可以学习到以下关键知识点: 1. **...
1. **Drag and Drop**:SWT支持拖放操作,允许用户通过鼠标将数据从一个地方移动到另一个地方。开发者需要实现DragSource和DropTarget接口来处理拖放事件。 2. **Accessibility**:为了使应用程序对残障人士友好,...
SWT采用了事件驱动模型,支持多种类型的事件,如鼠标事件、键盘事件等。开发者可以通过监听器模式来响应这些事件。 #### 7. 应用SWT绘制2D图像 SWT提供了强大的绘图能力,支持基本的2D图形绘制,如线条、矩形、圆...
首先,你需要确保你的开发环境是基于Java的,并且是32位的,因为这个SWT版本不支持64位系统。然后,你可以按照以下步骤操作: 1. **下载SWT库**:将"swt.jar"文件从压缩包中提取出来。 2. **导入库**:在你的...
SWT支持各种类型的事件,如鼠标点击、键盘输入、窗口关闭等,事件处理机制是实现动态、响应式GUI的关键。 #### 结语 通过上述分析,我们对SWT在Java图形用户界面开发中的作用和实践有了更全面的认识。无论是基础的...
swt.jar swt.jar swt.jar swt.jar swt.jar
每当用户操作鼠标或键盘时,操作系统会根据鼠标单击的位置、当前焦点窗口等信息决定应该把事件放到哪个 GUI 程序的队列中。 在 GUI 程序中,需要用一个循环不停地去读取自己的事件队列,每当检查到有新的事件时,就...
在"java的鼠标键盘钩子程序swt实现"这个主题中,我们将探讨如何使用SWT来创建这样的钩子程序。 SWT是Eclipse项目的一部分,提供了与Java标准库AWT和Swing不同的GUI组件和功能。它直接与操作系统底层交互,因此可以...