出口方式
原文: 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方法。
