码迷,mamicode.com
首页 > 编程语言 > 详细

Javar拖放

时间:2020-06-01 21:01:24      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:str   lis   apt   event   cti   介绍   手势   efault   释放   

拖放

graph LR dragSource(拖拽源) dropTarget(拖放目标) dragSource -->|拖放意图和数据| dropTarget

1、拖放意图(常量类DnDConstants)有:

  • ACTION_COPY
  • ACTION_MOVE
  • ACTION_COPY_OR_MOVE
  • ACTION_LINK
  • ACTION_NONE

2、拖放数据是一个Transferable对象(用于数据传递),它封装一个MIME类型。更多介绍请看相关内容。

拖拽源——DragSource

// 1、获得平台相关的DragSource对象
DragSource ds = DragSource.getDefaultDragSource();
// 2、将组件转换成拖拽源
ds.createDfaultDragGestureRecognizer(
  Component c, // 要转换的组件
  int actionIntent, // 拖拽意图
  DragGestureListener dgl // 拖拽监听器
);

GestureRecognizer 手势识别器

拖拽监听器

new DragGestureListener() {
  @Override
  public void dragGestureRecognized(DragGestureEvent event) {
    // 处理一些事件
    // 继续拖拽操作
    event.startDrag(
      Cursor dragCursor, // 拖拽时光标样式
			Transferable transferable, // 要拖拽的数据
      ... // DragSourceListener dsl // 拖拽后的监听器
    );
  }
};

拖放目标——DropTarget

DropTarget dt = new DropTarget(
  Component c, // 拖放目标组件
  int actionIntent, // 可接受的拖放意图
  DropTargetListener dtl // 拖放监听器
);

拖放监听器

new DropTargetAdapter() {
  @Override
  public void drop(DropTargetDropEvent event) {
    // 当进入方法前?时会阻塞当前线程
    event.getTransferable(); // 取出拖放数据
		event.dropComplete(true); // 释放阻塞线程
  }
};

Javar拖放

标签:str   lis   apt   event   cti   介绍   手势   efault   释放   

原文地址:https://www.cnblogs.com/matroleox/p/13026998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!