【发布时间】:2012-03-05 01:05:12
【问题描述】:
我扩展的我的 JList 让用户拖放重新排序它(使用 Reorder a JList with Drag-and-Drop 和 Use drag and drop to reorder a list)但它给了我一个奇怪的结果。它没有给我我的自定义JComponent,而是给了我它的.toString() 值。我将自定义JList 的模型设置为DefaultListModel<JComponent>,认为它可以工作,但它没有。
【问题讨论】:
-
那些文章严重过时了——目前自定义dnd的方式是自定义TransferHandler,见docs.oracle.com/javase/tutorial/uiswing/index.html对应章节
-
刚刚注意到:您从来没有(99.99%)在列表中有 JComponent 类型的项目。
-
澄清@kleopatra 的评论。您的
ListModel中没有JComponent实例。但是让渲染器创建自定义JComponents 来表示您的模型项是完全可以接受的 -
@kleopatra 我尝试根据需要更改文章,例如将模型更改为
DefaultListModel<_JComponent_>并添加真正的 JComponents。
标签: java string swing drag-and-drop jlist