JAVA UI 拖拽功能


java GUI拖拽功能是很实用也相对高级一些的功能。

有一小部分的GUI控件支持
他们有dragEnabled属性.这些JComponent包括:
javax.swing.JColorChooser
javax.swing.JFileChooser
javax.swing.JList
javax.swing.JTable
javax.swing.JTree
javax.swing.text.JTextComponent

大部分的控件不支持没有这个属性,尤其是常用的jpanel和jframe。

一种简单的方法是实现继承DropTargetAdapter类,这是一个实现了DropTargetListener接口的适配器,实现其中的drop方法。

该方法有一个DropTargetDropEvent对象的参数,drop里面调用顺序如下

1.调用这个对象的acceptDrop方法,需要一个Int参数,使用DnDConstants (Drag and Drop常数类)里的常数

2.获得dtde对象的getTransferable对象,在调用transferable的getTransferData方法。参数是DataFlavor.javaFileListFlavor(也是一个DataFlavor)。

DataFlavor涉及传输时一些信息,有些复杂,暂时没太理解。

3.直接在控件里面new一个DropTargetAdapter对象即可。

Drag and Drop的问题简单的说要涉及到两个部分: Drag Source, Drop target和Transferable 即从哪里drag来的,
以及drop到哪里去, 以及传输的数据.

没有进行深入了解,以下博客写的比较详细,有空看一看。

http://blog.sina.com.cn/s/blog_799d8220010196nj.html

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM