2

我正在尝试使用 JLabels 实现拖放类型的东西。基本上,一个 JPanel 使用位于屏幕周围指定框中的 JLabel 启动(所有 JLabels 和 Boxes 大小相同)。然后,我希望用户能够将 JLabel 拖入一个盒子并让它“卡入”盒子;这意味着,当他们的鼠标接近盒子时,程序知道将 JLabel 捕捉到该盒子中。

我可以通过鼠标侦听器和鼠标拖动来完成这项繁琐的工作并进行大量渲染(我已经开始这样做了,而且它不太漂亮)。但是我想知道网络上是否有任何人都知道的东西,或者 java 中内置的任何东西,这会对我有所帮助。

注意:这不是关于拖放的问题。

4

3 回答 3

1

Drag'n'Drop 就是这样一个特殊的需求领域。

看看组件TransferHandlerAPI的实现Swing。对于内置组件非常有效,需要一些工作才能在自定义组件中工作,但否则无法扩展(我正在查看您的自定义光标和拖动图形)。

问题是,任何工具包/API/框架都只能在其目标设计的约束下工作。

通过分离 DnD API 的各种元素、注册侦听器、事件处理等,您可以让生活“稍微”轻松一点,这样您就可以更好地专注于解决方案的需求,但目前,这大约是尽你所能。

例如,我编写的 API 可能无法满足您的需求,因为我编写的目的是解决我正在处理的一系列特定问题。

只是MHO

于 2012-08-28T00:13:47.940 回答
0

查看拖放包:http ://docs.oracle.com/javase/7/docs/api/java/awt/dnd/package-summary.html

于 2012-08-28T00:03:58.323 回答
0

尝试搜索 java“snap-to-grid”示例,然后进行相应修改以配对 gui 组件?

于 2012-08-28T01:57:54.823 回答