文档

Java™教程
隐藏目录
TransferHandler类
导航: 使用Swing创建GUI
课程: 拖放和数据传输

TransferHandler类

数据传输机制的核心是 TransferHandler 类。正如其名称所示,TransferHandler 提供了一个简单的机制,用于在 JComponent 之间传输数据 - 所有的细节都包含在这个类及其支持类中。大多数组件都提供了一个默认的传输处理程序。您可以在任何组件上创建和安装自己的传输处理程序。

有三种方法用于在组件上使用 TransferHandler

正如前面提到的,Swing 的默认传输处理程序(例如文本组件和颜色选择器使用的处理程序)提供了被认为对于数据的导入和导出最有用的支持。然而,列表、表格和树不会默认支持放置。原因是这些组件没有通用的处理放置的方式。例如,在 JTree 的特定节点上放置意味着什么?是替换该节点,插入到该节点下方,还是作为该节点的子节点插入?而且,我们不知道树后面是什么类型的模型 - 它可能是不可变的。

虽然 Swing 不能为这些组件提供默认实现,但放置的框架已经存在。您只需要提供一个自定义的 TransferHandler 来管理实际的数据导入。


注意: 

如果将自定义的 TransferHandler 安装到 Swing 组件上,将替换默认的支持。例如,如果用处理颜色的处理程序替换了 JTextFieldTransferHandler,将禁用其支持文本的导入和导出能力。

如果必须替换默认的 TransferHandler - 例如,处理文本的处理程序 - 您需要重新实现文本的导入和导出能力。这不需要像 Swing 提供的那样复杂 - 根据您的应用程序需求,它可以简单地支持 StringFlavor 数据类型。


接下来,我们将展示实现数据导出所需的 TransferHandler 方法。


上一页:示例 - BasicDnD
下一页:导出方法