出口方式

原文: https://docs.oracle.com/javase/tutorial/uiswing/dnd/export.html

我们将检查的第一组方法用于从组件导出数据。当有问题的组件是操作源时,将为拖动手势或剪切/复制操作调用这些方法。用于导出数据的TransferHandler方法是:

  • getSourceActions(JComponent) - 此方法用于查询源组件支持的操作,例如COPYMOVELINK,可以任意组合。例如,客户列表可能不支持将客户名称移出列表,但很可能支持复制客户名称。我们的大多数例子都支持COPYMOVE
  • createTransferable(JComponent) - 此方法将要导出的数据捆绑到 Transferable 对象中以准备传输。
  • exportDone(JComponent, Transferable, int) - 导出完成后调用此方法。当操作是MOVE时,传输完成后需要从源中删除数据 - 此方法是进行任何必要清理的地方。

样例导出方法

以下是导出方法的一些示例实现:

  1. int getSourceActions(JComponent c) {
  2. return COPY_OR_MOVE;
  3. }
  4. Transferable createTransferable(JComponent c) {
  5. return new StringSelection(c.getSelection());
  6. }
  7. void exportDone(JComponent c, Transferable t, int action) {
  8. if (action == MOVE) {
  9. c.removeSelection();
  10. }
  11. }

接下来我们将看一下数据导入所需的TransferHandler方法。