默认 DnD 支持

原文: 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 支持,例如JFrameJDialog。您可以在顶级掉落中了解更多相关信息。