Java 将图像拖放到列表中
我正在寻找一种以水平顺序显示一系列图片(带有图像的 JPanels 以及可能还有其他一些小组件)的方法。
用户应该能够通过拖放来重新排列图像的顺序。 我该怎么做? JList 与一些自定义组件和 D&D 是可行的方法吗? 需要考虑的一些问题(我听说让组件具有相同的尺寸可以提高性能)。
I am looking for a way to display a series of pictures (JPanels with image and maybe some other small components), in a horizontal sequence.
The user should be able to rearrange the order of the images, by drag and drop.
How do I do this? Is JList with some custom components and D&D the way to go?
Some issues to think about (having the components the same dimension increases performance I've heard).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
以下示例向您展示如何在列表中水平显示图像并使用拖放功能。放下以重新排序。如果空间不足,列表将水平换行。
The following example shows you how to show images horizontally in a list and use drag & drop to reorder them. The list wraps horizontally if it runs out of space.
拖放图像?
Drag&Drop for Images ?
创建一个包含图像的 ListModel。
创建一个 ListCellRenderer 来显示它们并将其设置为列表的渲染器。您可以在渲染器中使用 JLabel,因此设置图像很容易。
创建一个知道如何处理 DataFlavor.imageFlavor 的 TransferHandler。斯坦尼斯拉夫引用的例子是一个开始。
设置列表的transferHandler 属性。
Create a ListModel that contains the images.
Create a ListCellRenderer that displays them and set that to be the List's renderer. You can use a JLabel in your renderer so setting the image is easy.
Create a TransferHandler that knows how to handle DataFlavor.imageFlavor. The example cited by StanislavL is a start.
Set the list's transferHandler property.