摘要:使用Draw2d ,画图,连线,可拖动图像,连线跟着移动。
1,代码:
public class Connection { public static void main(String args[]) { Shell shell = new Shell(); shell.setSize(350, 350); shell.open(); shell.setText("Connection Demo"); LightweightSystem lws = new LightweightSystem(shell); IFigure panel = new Figure(); lws.setContents(panel); // 创建两个四边形的图形实例 RectangleFigure node1 = new RectangleFigure(), node2 = new RectangleFigure(); // 设置node1的背景色 node1.setBackgroundColor(ColorConstants.red); // 设置node1的大小和位置 node1.setBounds(new Rectangle(30, 30, 64, 36)); // 设置node2的背景色 node2.setBackgroundColor(ColorConstants.blue); // 设置node2的大小和位置 node2.setBounds(new Rectangle(100, 100, 64, 36)); // 创建一个连线的实例 PolylineConnection conn = new PolylineConnection(); // 设置连线起点的锚点 conn.setSourceAnchor(new ChopboxAnchor(node1)); // 设置连线目标的锚点 conn.setTargetAnchor(new ChopboxAnchor(node2)); // 设置连线目标的装饰器 conn.setTargetDecoration(new PolygonDecoration()); Label label = new Label("Midpoint"); label.setOpaque(true); label.setBackgroundColor(ColorConstants.buttonLightest); label.setBorder(new LineBorder()); // 添加连线的Locator conn.add(label, new MidpointLocator(conn, 0)); // 在底层Figure中添加子Figure panel.add(node1); panel.add(node2); panel.add(conn); // 添加node1拖动的监听器 new Dragger(node1); // 添加node2拖动的监听器 new Dragger(node2); Display display = Display.getDefault(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } } static class Dragger extends MouseMotionListener.Stub implements MouseListener{ private Point last; public Dragger(IFigure figure) { figure.addMouseMotionListener(this); figure.addMouseListener(this); } public void mouseDoubleClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { last = e.getLocation(); } public void mouseReleased(MouseEvent e) { } public void mouseDragged(MouseEvent e) { Point p = e.getLocation(); Dimension delta = p.getDifference(last); last = p; Figure f = (Figure) e.getSource(); //设置拖动的Figure的位置 f.setBounds(f.getBounds().getTranslated(delta.width,delta.height)); } } }
图像:
相关推荐
在"Draw2d画线例子"中,我们将探讨如何利用Draw2d库来实现动态地在屏幕上绘制曲线图形。 首先,要使用Draw2d,你需要在Eclipse环境中设置好项目依赖。确保你已经安装了Eclipse IDE,并且导入了相关的插件如GEF...
另外,`connectionDirectEdit`是GEF中处理连接线编辑的重要部分,用户可以通过拖动端点或控制点来修改连接线的形状。这部分源码展示了如何响应用户交互并更新模型数据。 在实际应用中,我们可能需要扩展这些基本...
基于java的贝儿米幼儿教育管理系统答辩PPT.pptx
本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac
基于java的消防物资存储系统答辩PPT.pptx
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
TA_lib库(whl轮子),直接pip install安装即可,下载即用,非常方便,各个python版本对应的都有。 使用方法: 1、下载下来解压; 2、确保有python环境,命令行进入终端,cd到whl存放的目录,直接输入pip install TA_lib-xxxx.whl就可以安装,等待安装成功,即可使用! 优点:无需C++环境编译,下载即用,方便
使用软件自带的basic脚本编辑制作的脚本 低版本软件无法输出Excel报告,可以通过脚本方式实现这一功能
基于java的就业信息管理系统答辩PPT.pptx
25法理学背诵逻辑.apk.1g
基于java的大学生校园兼职系统答辩PPT.pptx
做到代码,和分析的源数据
本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
适用于ensp已经入门人群的学习,有一定难度
基于java的数码论坛系统设计与实现答辩PPT.pptx
tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl
基于java的医院信管系统答辩PPT.pptx
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse