Javar拖放

2020-12-28 22:30

阅读:583

标签: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


评论


亲,登录后才可以留言!