Java swing拖拽移动组件.
来源:互联网 发布:在淘宝怎么买电影票 编辑:程序博客网 时间:2024/06/11 14:39
首先构造自己的组件,如..Component extends JComponents { ... }。在里面添加拖拽方法
DragSource dragSource = DragSource.getDefaultDragSource();dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_MOVE, new DragGestureListener() {...}
在父容易里,如..Panel extends JPanel { ...} 添加拖拽实现。
new DropTarget(this, DnDConstants.ACTION_MOVE, new DropTargetAdapter() {@Overridepublic void drop(DropTargetDropEvent dtde) {...}}
最后还有一个...Transferable implements Transferable { ..}
如果在...Transferable里传递..Component对象,在..Panel的drop方法里取得..Component后,调用..Component.setLocation是不能移动组件的。原因是拖拽会将...Transferable从新序列化,得到一个新的..Component组件,因为..Component继承了Component,而在Component里的parent是transient,所以拖拽后,新..Component和..Panel容器不会产生关联,setLocation方法不起作用。
所以只要在..Transferable里传递一些标识性,drop里得到原对象引用即可解决拖拽移动,还可以顺便传递原坐标。
左图中,右下移动过程中有一个鼠标的拖拽光标,右图为移动完成后
1 0
- Java swing拖拽移动组件.
- 鼠标拖拽移动Java界面组件
- Java swing 组件大全
- java swing 组件
- JAVA SWING 组件显示
- java swing 中的组件
- Java Swing组件类型
- Java -- Swing 组件使用
- java Swing组件大全
- Swing 组件概述 java
- swing/组件 java(三)
- Java Swing组件基础
- java swing组件介绍
- Java中的Swing组件
- Java Swing 基本组件
- java--swing组件
- java swing 组件初探
- Swing代码分析(移动组件一)
- PAT(A) 1024
- GCC源码分析(3):Tree-SSA优化框架
- 两个栈实现一个队列&&两个队列实现一个栈
- GCC源码分析(2):从C代码到GIMPLE
- [Android] 图像各种处理系列文章合集
- Java swing拖拽移动组件.
- GCC源代码分析(1): GCC中的树
- mysql dba系统学习-数据库事务详解
- Vectorization (parallel computing) from Wikipedia
- 加密原理图
- a list of compiler books — 汗牛充栋的编译器参考资料
- 国内从事编译相关研究和开发的单位列表(截至2012-7-4)
- 单词倒置
- 三个数从小到大排序