Java Swing 拖放并弹出对话框

标签 java swing drag-and-drop

我希望 Java Swing 应用程序具有以下行为:

  1. 用户拖放图标。
  2. 如果还应操作其他图标,系统会通过模式对话框提示用户。
  3. 用户选择"is"、“否”或“取消”(或关闭对话框)后,Java 开始对图标进行操作(复制/移动)(或在取消/关闭时不执行任何操作)。

TransferHandler.canImport() 中,我可以看到放置目标,但看不到图标。

TransferHandler.exportDone() 中,我可以看到图标,但看不到放置目标。

TransferHandler.importData() 中,我对两者都可见,但到那时就太晚了,因为如果我正在执行 TransferHandler.MOVE 那么 TransferHandler .exportDone() 已经删除了图标。

使用 Java Swing 可以实现我上面提到的行为吗?如果是这样,我需要使用什么版本的 JDK/JRE 以及如何实现它?

最佳答案

如果您希望能够拖放项目,以及以编程方式移动/复制它们,您需要确保您有一个正确的模型设置来支持< em>查看。这意味着您不应该将业务逻辑直接编码到 GUI 代码中。该模型应该简单且独立,侧重于管理数据的实际任务。就您而言,听起来您只需要保存一些对象集合并提供将对象从一个集合移动/复制到另一个集合的方法。执行此操作的代码称为 Controller (MVC - 如果您已经熟悉此模式,请原谅我)。然后 Controller 将更新 GUI 以反射(reflect)更改。同样,您的拖放操作将触发 Controller 操作,该操作在模型上执行类似的操作。

关于Java Swing 拖放并弹出对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875312/

相关文章:

java - 导入未在继承的嵌套类上使用

java - 如何让自定义 javadoc 标记出现在 netbeans 的自动完成 javadoc 中?

c# - 通过从 Treeview 拖放到 WinForms 中的文本框来增强功能

javascript - HTML5 : "ondrop" event does not fire when I drop an item

java.net.SocketTimeoutException (安卓)

java - 在Android项目中,单个文件有R错误

java - 在 JComboBox 中显示属性并注册另一个属性

java - 当 JFrame 或 JDialog 隐藏时覆盖 WindowAdapter 的正确方法是什么?

java - 在两个单独的 .java 文件之间传递数据

android - 像在 facebook for android app 中一样在 android 中拖动布局