这些Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
有关Java SE 9和后续版本中更新的语言功能的摘要,请参阅Java语言变化。
有关所有JDK版本的新功能、增强功能和已删除或已弃用选项的信息,请参阅JDK发行说明。
首先我们将研究用于从组件导出数据的一组方法。这些方法在拖放手势或剪切/复制操作时调用,当涉及的组件是操作的源时。导出数据的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
方法。