# 默认 DnD 支持

> 原文： [https://docs.oracle.com/javase/tutorial/uiswing/dnd/defaultsupport.html](https://docs.oracle.com/javase/tutorial/uiswing/dnd/defaultsupport.html)

从技术上讲，拖放框架支持所有 Swing 组件 - 数据传输机制内置于每个`JComponent`。如果需要，可以为`JSlider`实现 drop 支持，以便它可以完全参与数据传输。虽然默认情况下`JSlider`不支持 drop，但您希望（并期望）支持拖放的组件确实提供了专门的内置支持。

一旦在组件上调用`setDragEnabled(true)`方法，以下组件就会识别拖动手势。例如，一旦调用`myColorChooser.setDragEnabled(true)`，您可以从颜色选择器中拖动颜色：

*   `JColorChooser`
*   `JEditorPane`
*   `JFileChooser`
*   `JFormattedTextField`
*   `JList`
*   `JTable`
*   `JTextArea`
*   `JTextField`
*   `JTextPane`
*   `JTree`

以下组件支持开箱即用。如果您使用其中一个组件，您的工作就完成了。

*   `JEditorPane`
*   `JFormattedTextField`
*   `JPasswordField`
*   `JTextArea`
*   `JTextField`
*   `JTextPane`
*   `JColorChooser`

drop 的框架适用于以下组件，但您需要插入少量代码来自定义对您的需求的支持。

*   `JList`
*   `JTable`
*   `JTree`

对于这些关键组件，Swing 执行放置位置计算和渲染;它允许您指定放置模式;它处理组件特定的细节，例如树扩展。你的工作相当少。

* * *

**Note:** 

您还可以在顶级容器上安装 drop 支持，例如`JFrame`和`JDialog`。您可以在[顶级掉落](toplevel.html)中了解更多相关信息。

* * *