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

时间: 2024-10-26 06:46:34

JAVA UI 拖拽功能的相关文章

UI拖拽功能的实现与base.Start();

using System.Collections;using System.Collections.Generic;using UnityEngine; public class InventoryItem : UIDragDropItem { void Start(){ base.Start();//先调用父类里面的方法在调用这里的Start()---------该脚本需要执行start()函数,而且为了不影响父类UIDragDropItem里的start()函数需要加这行代码; } //把S

Atitit。D&D drag&drop拖拽功能c#.net java swing的对比与实现总结

Atitit.D&D drag&drop拖拽功能c#.net java swing的对比与实现总结 1. 实现一个D&D操作一般包括三个步骤: 1 2. .net黑头的拖曳机制.必须有DragEnter事件(单独写DragDrop事件是不会具有拖拽功能的) 2 3. ---java黑头的拖曳..必须有DragEnter事件(单独写 Drop事件是不会具有拖拽功能的) 2 4. 代码 3 5. 参考 5 1. 实现一个D&D操作一般包括三个步骤: 首先实现一个拖拽源,这个拖拽

JQuery UI的拖拽功能

JQuery UI是JQuery官方支持的WebUI 代码库,包含底层交互.动画.特效等API,并且封装了一些Web小部件(Widget).同时,JQuery UI继承了jquery的插件支持,有大量的第三方插件可以丰富JQuery UI的功能. JQuery UI提供的API极大简化了拖拽功能的开发.只需要分别在拖拽源(source)和目标(target)上调用draggable和droppable两个函数即可. 拖拽原理 首先要明确几个概念. ource:拖拽源,要拖动的元素. taerge

使用UGUI实现拖拽功能(拼图小游戏)

实现方式 1.引入UGUI自带的事件系统 UnityEngine.EventSystems 2.为我们的类添加接口 IBeginDragHandler, IDragHandler, IEndDragHandler 1 using UnityEngine; 2 using System.Collections; 3 using UnityEngine.EventSystems; 4 5 public class DragOnPic : MonoBehaviour,IBeginDragHandler

我的开源框架之可拖拽功能实现

需求: (1)实现元素可拖拽 (2)自定义拖拽范围 (3)自定义按下触发拖拽的元素 (4)支持拖拽过程中的事件监听 实现思路: 元素可拖拽的实现关键为,mousedown.mousemove.mouseup三大事件.mousedown为按下触发拖动的事件,可以定义到元素本身或其他元素:mousemove为拖动范围元素的事件,该事件负责重新设置拖动元素的位置属性:mouseup为拖动范围元素的事件,该事件主要为了释放mousemove.mouseup事件. 为避免当拖动元素内容有较大内容时,重新绘

Java实现拖拽上传

原文:http://www.open-open.com/code/view/1437358795584 在项目开发中由于实际需求,需要开发拖拽上传的功能,ok! 先看效果图: jsp上传前端代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html>

关于Unity中UGUI 图片实现拖拽功能

应用方法:将下面脚本挂载在需要拖拽功能的UI图片上即可 两种拖拽选择:A.中心拖拽(图片中心跟随鼠标位置)m_isPrecision为false: B.精准拖拽(图片被鼠标点击的位置跟随鼠标位置)m_isPrecision为true: 1 /************************************************* 2 * 项目名称:UGUI通用 3 * 脚本创建人:魔卡 4 * 脚本创建时间:2017.12.14 5 * 脚本功能:UI图片拖拽功能(将脚本挂载在需要拖放

vuejs2.0使用Sortable.js实现的拖拽功能( 转)

文章目录 简介 实现效果 html主要代码 css代码 js代码 简介 在使用vue1.x之前的版本的时候,页面中的拖拽功能,我在项目中是直接用的jquery ui中的sortable.js,只是在拖拽完成后,在update的回调函数中又重新排序了存放数据的数组.但是当把vue升级到2.0以上后发现拖拽功能失效了,于是使用了下面代码. 该案例主要是在用于vuejs2.0中实现的拖拽功能,用到的的js有Sortable.js,vuedraggable.js,当然还有vue.min.js,提供的案例

bcb ole拖拽功能的实现

最近项目中用到了OLE 拖拽功能 和BCB 一个Form的Drag 不同的是,只有实现了OLE 拖拽才能,从其他程序拖拽数据到Form 下面的代码实现了,同HTML网页拖拽到Form时,Form获得HTML数据 其核心思想是, 1,要实现 COM的 IDropTarget 接口 2,RegisterDragDrop(handle,this); 注册窗口的拖拽 3,窗口类构造 OleInitialize(NULL); 4,窗口类析构时 OleUninitialize(); 5,在下面的代码中,我将