为了帮助更好地理解我们希望程序如何运行,这里列出了我们目前拥有的内容:
1 个 JPanel,它具有用作 用户将在其上放置对象的“白板”。
1 个包含所有按钮和控制功能的 JPanel “白板”面板中的选定对象
1 个放置在 JScrollPanel 中的 JPanel,它包含一个列表 带有要放置在“白板”面板上的图像的 JLabel
一类对象,存储每种类型的所有属性 可以放置的家具元素;例如 x/y 线、图像位置、 价格、人工成本等
我们希望发生的事情如下:
- 用户在滚动列表面板中的 JLabel 上“按住鼠标”(我假设 JLable 也需要以某种方式可选择)
- 然后事件采用 JLabel 的名称
- 根据名称实例化项目类的对象
- 将该对象添加到“白板”面板中的项目数组中
- 然后根据对象属性中的位置加载不同图像的副本
- 然后将该图像附加到鼠标光标上
- 只要用户按住鼠标按钮,图像就会保持附加状态
- 如果用户随后在“白板”面板区域内释放鼠标按钮,将触发一个事件以将对象的位置设置为鼠标光标的坐标
- 如果在其他任何地方释放鼠标,光标将返回到默认窗口,并且 JLabel 保持选中状态
我不知道设置一个鼠标监听器是否会更简单,该鼠标监听器将图像绑定(bind)到鼠标,然后将其副本放置到白板上的任何单击位置。
这是到目前为止已创建的图像的链接:http://img824.imageshack.us/img824/4083/o50p.png
任何提示或想法将不胜感激!
最佳答案
我不得不说使用 JToolBar
。我这样说是因为它具有内置的拖放功能。如果需要,您可以使用鼠标监听器和 java2d
手动执行此操作。只需将 JLabel
图像放在 JToolBar
中。祝你好运!
关于java - 在两个 JPanel 之间拖动 Jlabel 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19556789/