我想在Java Swing应用程序中使用以下行为:
在TransferHandler.canImport()
内,我可以看到放置目标,但不能看到图标。
在TransferHandler.exportDone()
内,我可以看到图标,但不能看到放置目标。
在TransferHandler.importData()
内我可以看到两者,但到那时已经太晚了,因为如果我正在执行TransferHandler.MOVE
,那么TransferHandler.exportDone()
已经删除了该图标。
上面提到的行为是否可以使用Java Swing?如果是这样,我需要使用哪个版本的JDK / JRE以及如何实现它?
答案 0 :(得分:2)
如果你想能够拖放项目,以及以编程方式移动/复制它们,你需要确保你有一个正确的模型设置,支持< EM>视图。这意味着您不应将业务逻辑直接编码到GUI代码中。该模型应该简单而独立,重点关注管理数据的实际任务。在您的情况下,您听起来只需要保存一些对象集合并提供将对象从一个集合移动/复制到另一个集合的方法。执行此操作的代码称为 controller (MVC - 如果您已熟悉此模式,请原谅我)。然后控制器将更新GUI以反映更改。同样,您的拖放操作将触发控制器操作,该操作会对模型执行类似的操作。