出口方式
原文: https://docs.oracle.com/javase/tutorial/uiswing/dnd/export.html
我们将检查的第一组方法用于从组件导出数据。当有问题的组件是操作源时,将为拖动手势或剪切/复制操作调用这些方法。用于导出数据的TransferHandler
方法是:
getSourceActions(JComponent)
- 此方法用于查询源组件支持的操作,例如COPY
,MOVE
或LINK
,可以任意组合。例如,客户列表可能不支持将客户名称移出列表,但很可能支持复制客户名称。我们的大多数例子都支持COPY
和MOVE
。createTransferable(JComponent)
- 此方法将要导出的数据捆绑到Transferable
对象中以准备传输。exportDone(JComponent, Transferable, int)
- 导出完成后调用此方法。当操作是MOVE
时,传输完成后需要从源中删除数据 - 此方法是进行任何必要清理的地方。
样例导出方法
以下是导出方法的一些示例实现:
int getSourceActions(JComponent c) {
return COPY_OR_MOVE;
}
Transferable createTransferable(JComponent c) {
return new StringSelection(c.getSelection());
}
void exportDone(JComponent c, Transferable t, int action) {
if (action == MOVE) {
c.removeSelection();
}
}
接下来我们将看一下数据导入所需的TransferHandler
方法。