设置放置 Pattern

在列表等组件上启用放置时,需要决定如何解释放置位置。例如,是否要限制用户替换现有条目?您是否只允许添加或插入新条目?您要允许两者吗?要配置此行为,JList类提供了setDropMode方法,该方法支持以下放置 Pattern。

JTree类提供相同的drop modes集,而JTable类具有several more特定于添加行或列。

为了获得放置位置,TransferSupport类提供了getDropLocation方法,该方法返回发生放置的精确点。但是对于列表组件,放置索引比像素位置更有用,因此JList提供了一个特殊的子类JList.DropLocation。此类提供getIndexisInsert方法,可以为您处理 math。

表格,树和文本组件各自提供DropLocation的实现,并使用对每个组件最有意义的方法。 JTable.setDropMode方法具有最多的选择。下表显示了所有四个类的方法:

JList.DropLocation JTree.DropLocation JTable.DropLocation JTextComponent.DropLocation
isInsert getChildIndex isInsertRow getIndex
getIndex getPath isInsertColumn getBias
getRow
getColumn

接下来是一个演示,该演示为列表组件实现了自定义传输处理程序,从而使其完全参与拖放操作。

首页