ape*_*ins 5 java swing drag-and-drop
我们对我正在开发的产品有一个请求,希望获得有关我们的拖放行为的更多反馈。具体来说,他们希望我们在拖动操作期间鼠标悬停在某些区域上时突出显示某些区域(以显示放置发生的位置)。然而,我们使用 TransferHandler 来处理 DnD 和剪切/复制/粘贴,并且根据我们的测试,Swing 似乎不允许我们向组件添加另一个 DropTarget(回想起来,由于一些明显的原因!)我们曾尝试走几条路,但都没有结出任何成果。
基本上,我们希望在dragEnter 和dragExit 事件的中间,同时仍然使用TransferHandler 功能来促进轻松的剪切/复制/粘贴和放置行为。有人有做这种事情的例子吗?或者这在 Swing 中当前的 DnD 设置中真的很难做到吗?
大多数开箱即用的 Swing 组件都支持这种内置组件(JTree、JList 等)。对于这些组件,您可以设置放置模式,用户界面将处理绘制适当的视觉效果。
myJList.setDropMode(DropMode.ON_OR_INSERT);
Run Code Online (Sandbox Code Playgroud)
对于自定义组件,您需要自己处理绘图,方法是重写paintComponent以绘制自定义效果,然后为“dropLocation”属性添加一个 propertyChangeListener,以在必要时触发适当的重绘。这将在拖动时频繁调用,因此您可能希望仅在放置位置的更改实际上导致行为发生变化时触发重绘。
| 归档时间: |
|
| 查看次数: |
1005 次 |
| 最近记录: |