图形拖动例子
import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.Figure; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.LightweightSystem; import org.eclipse.draw2d.MouseEvent; import org.eclipse.draw2d.MouseListener; import org.eclipse.draw2d.MouseMotionListener; import org.eclipse.draw2d.Panel; import org.eclipse.draw2d.RectangleFigure; import org.eclipse.draw2d.XYLayout; import org.eclipse.draw2d.geometry.Dimension; import org.eclipse.draw2d.geometry.Point; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class Dnd1 { IFigure getRootFigure() { Panel panel = new Panel(); panel.setLayoutManager(new XYLayout()); RectangleFigure rFigure = new RectangleFigure(); rFigure.setSize(55,55); rFigure.setBackgroundColor(ColorConstants.green); new Dnd(rFigure); panel.add(rFigure); return panel; } public static void main(String args[]) { Display display = Display.getDefault(); Shell shell = new Shell(); shell.setSize(400, 300); shell.open(); shell.setText("drag and drop example"); LightweightSystem lws = new LightweightSystem(shell); lws.setContents(new Dnd1().getRootFigure()); while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } } } class Dnd extends MouseMotionListener.Stub implements MouseListener { Point start; public Dnd(IFigure figure) { figure.addMouseMotionListener(this); figure.addMouseListener(this); } public void mouseReleased(MouseEvent e){ Figure f = ((Figure)e.getSource()); f.setCursor(null); } public void mouseClicked(MouseEvent e){} public void mouseDoubleClicked(MouseEvent e){} public void mousePressed(MouseEvent e) { Figure f = ((Figure)e.getSource()); f.setCursor(Display.getCurrent().getSystemCursor(SWT.CURSOR_SIZEALL)); start = e.getLocation(); } public void mouseDragged(MouseEvent e) { if(start == null) { return; } Point p = e.getLocation(); Dimension d = p.getDifference(start); start = p; Figure f = ((Figure)e.getSource()); f.setBounds(f.getBounds().getTranslated(d.width, d.height)); } }
相关推荐
基于HTML5与EXTJS4实现的最基本的多图形拖动例子,运用了面向对象思想,画出来的图形是UML图,父类是UmlShape,子类是SubUmlShape,可作为学习HTML5画图的参考例子,至于extjs的包,自己上官网下,然后把HTML文件里的...
这个“JS 拖拽例子”是一个教学实例,旨在展示如何在网页上实现拖放操作。下面我们将详细讨论拖放的基本原理和实现步骤。 首先,拖放功能涉及到两个主要事件:`dragstart` 和 `drop`。当用户开始拖动一个元素时,会...
在PyQt5中,QPainter是一个非常重要的模块,它提供了丰富的绘图功能,可以用于在窗口、图片、...这个例子只是一个起点,实际的PyQt5应用可以根据需求进行扩展,比如添加更多的图形类型、支持图形旋转缩放等高级功能。
在"jfreechart图形报表例子"中,你将找到一系列示例代码,帮助你理解和学习如何使用JFreeChart来生成这些图表。 首先,JFreeChart的基本用法包括创建图表对象,定义数据源,设置图表类型和样式,以及最后的渲染和...
这个例子展示了如何实现一个可拖动节点的`JTree`,这在用户界面设计中是一个常见且实用的功能,特别是在需要展示层次结构信息时。`JTree`允许用户通过拖放操作来重新排列节点,提高交互性和用户体验。 拖放(Drag ...
本例子源码通过面向对象的设计方法,将绘图元素封装,使得代码更加模块化和易于维护。 首先,我们需要了解GDI+的基本概念。GDI+的核心是Graphics类,它是所有绘图操作的基础。你可以通过创建Graphics对象并传入设备...
5. **图形交互**:MATLAB图形可以实现交互式操作,如拖动坐标轴改变数据视图,使用`ginput`获取用户点击的图形位置,`zoom`和`pan`提供缩放和平移功能。 6. **子图布局**:`subplot`函数用于创建多图布局,便于对比...
在这个"交互式绘图例子"中,我们可能涉及了如何使用这些库进行图形绘制,并且结合了"对话框"和"橡皮筋"的概念,这两个概念在2D图形界面设计中非常常见。 "对话框"在用户界面设计中是一个临时的窗口,通常用来获取...
自定义拖动类通常涉及到对图形实体的选中、移动和更新等操作的控制,使用户能够按照特定的逻辑或规则来拖动实体。这样的类可以用来实现特殊的行为,比如限制移动范围、执行特定的计算等。 接下来,我们将探讨如何...
这个压缩包文件"JAVA3D交互式三维图形编程讲解和例子源码.rar"包含了关于如何使用Java3D进行编程的详细教程和实例源代码,非常适合初学者和希望深化Java3D技能的开发者。 首先,让我们来深入了解一下Java3D的核心...
5. **事件处理**:图形库往往与用户交互密切相关,可以捕捉点击、拖拽等事件,实现动态图形操作。 6. **性能优化**:为了在不同的设备和平台上流畅运行,自定义图形库通常会进行硬件加速,利用GPU进行图形渲染,...
这个例子就是关于如何实现一个功能,让用户可以拖动图片到界面内的任意位置。VB6.0提供了强大的事件驱动编程模型,使得这种交互变得简单。 首先,我们需要了解VB6中的控件和事件。在这个例子中,图片可能是由...
在拖拽过程中,jQueryUI触发了一系列的事件,如`dragstart`、`drag`、`dragstop`等,开发者可以通过监听这些事件来实现自定义行为,比如在拖动开始时显示提示信息,在拖动结束时保存新的位置。 7. **主题支持** ...
总的来说,通过C#和GDI+,我们可以实现一个功能丰富的截图工具,虽然这个例子可能只实现了基本的截图功能,但通过对各个部分的扩展和优化,可以创建出更加完善的截图应用。在实际开发中,你还可以考虑增加性能优化,...
在计算机编程领域,图片拖拽功能是用户界面中常见的交互方式,它允许用户通过鼠标操作移动图片或...这个过程不仅涉及到事件处理,还涉及到了图形界面的更新和坐标系统的理解。在实际编程中,这些知识点都是不可或缺的。
在Flex3中,你可以创建具有丰富用户界面和交互功能的应用程序,而“flex3一个简单购物车拖拽的例子”是一个演示如何在Flex环境中实现拖放功能的实例。这个例子展示了如何将商品图标或项拖入数据网格(DataGrid)中,...
这项技术广泛应用于文件管理、多媒体编辑、软件开发等多个场景,尤其是在图形用户界面(GUI)的设计中。本篇文章将深入探讨拖拽拷贝的概念、实现原理以及在不同环境下的应用。 拖拽拷贝的基本原理是通过鼠标或触控...
本实例将聚焦于“可任意拖动竖线曲线改变图形形状”的方法,这是一种利用贝塞尔曲线(Bezier Splines)进行图形变形的高级技巧。 贝塞尔曲线是计算机图形学中的基本工具,它提供了对曲线形状的精细控制。贝塞尔曲线...
这个入门学习例子旨在帮助初学者理解GEF的基本用法和核心概念,通过实例展示如何利用GEF实现工具栏、菜单栏、属性栏以及图形的交互功能,如移动、删除、撤销、连线等,并涵盖了大纲视图和鹰眼功能的实现。...
在这个例子中,我们将深入探讨拖拽功能的基本原理、实现方式以及它在不同应用场景中的价值。 1. 拖拽(Drag)的基本概念: 拖拽操作通常包括三个主要阶段:按下、拖动和释放。用户首先点击并保持鼠标按钮(或触摸...