java - 在两个 JPanel 之间拖动 Jlabel 图像

标签 java swing user-interface drag-and-drop jpanel

为了帮助更好地理解我们希望程序如何运行,这里列出了我们目前拥有的内容:

  • 1 个 JPanel,它具有用作 用户将在其上放置对象的“白板”。

  • 1 个包含所有按钮和控制功能的 JPanel “白板”面板中的选定对象

  • 1 个放置在 JScrollPanel 中的 JPanel,它包含一个列表 带有要放置在“白板”面板上的图像的 JLabel

  • 一类对象,存储每种类型的所有属性 可以放置的家具元素;例如 x/y 线、图像位置、 价格、人工成本等

我们希望发生的事情如下:

  1. 用户在滚动列表面板中的 JLabel 上“按住鼠标”(我假设 JLable 也需要以某种方式可选择)
  2. 然后事件采用 JLabel 的名称
  3. 根据名称实例化项目类的对象
  4. 将该对象添加到“白板”面板中的项目数组中
  5. 然后根据对象属性中的位置加载不同图像的副本
  6. 然后将该图像附加到鼠标光标上
  7. 只要用户按住鼠标按钮,图像就会保持附加状态
  8. 如果用户随后在“白板”面板区域内释放鼠标按钮,将触发一个事件以将对象的位置设置为鼠标光标的坐标
  9. 如果在其他任何地方释放鼠标,光标将返回到默认窗口,并且 JLabel 保持选中状态

我不知道设置一个鼠标监听器是否会更简单,该鼠标监听器将图像绑定(bind)到鼠标,然后将其副本放置到白板上的任何单击位置。

这是到目前为止已创建的图像的链接:http://img824.imageshack.us/img824/4083/o50p.png

enter image description here

任何提示或想法将不胜感激!

最佳答案

我不得不说使用 JToolBar。我这样说是因为它具有内置的拖放功能。如果需要,您可以使用鼠标监听器和 java2d 手动执行此操作。只需将 JLabel 图像放在 JToolBar 中。祝你好运!

关于java - 在两个 JPanel 之间拖动 Jlabel 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19556789/

相关文章:

java - 如何部署 java derby 应用程序以分发给其他客户端

JavaFX 2 TreeView 将焦点从 TreeView TreeCell 更改为

c++ - 在 C 中嵌入 XUL 后端

java - 组织.json.JSONException : Missing value at character 1

java - 计算最长路径

java - JRadiobutton 结合 JButtons 实现。错误方法不是抽象的并且不会覆盖抽象方法

java - 即使在java中处理框架后,JTable的焦点也不会丢失?

java - 如何在类中定义java方法?

java - AppiumDriver 给出空指针异常

java - 你能在 C++ 中使用 Java Swing 吗?