拖放后,Java List停止更新

时间:2011-04-14 19:30:58

标签: java list drag-and-drop tree

我正在创建一个将文件从xml转换为pptx的应用程序。用户将项目从JTree拖动到JList以创建幻灯片。我已经设法让一切正常,但JList似乎在掉线后消失了。我知道因为print语句而收到drop,并且它不是null。我相信JList仍在那里,因为我可以打印数组中的项目。通过测试,我认为我创建的自定义DefaultListModel出了问题。由于某种原因,它不会在删除后调用update / redraw / revalidate,或者已经释放了它的动作侦听器,因为我注意到在删除后getSize和getElementAt方法停止被调用。但是,如果我在app init上向ListModel添加项目,它会正确绘制。

我一直在浏览ListModels和TransferHandlers上的所有文档,但是在删除后无法显示List。我的模型是否缺少覆盖或不以某种方式处理侦听器?

完整来源: http://code.google.com/p/app4args/

可能存在问题的文件: http://code.google.com/p/app4args/source/browse/trunk/src/edu/gatech/app4args/utils/CustomListModel.java

重新创建:

  1. 下载最新版本/来源&示例xml文件来自项目站点的下载部分
  2. 运行应用,选择文件>导入,浏览到示例xml文件
  3. 制作新幻灯片:幻灯片>新幻灯片,选择标准(任何作品)
  4. 将JTree项目从库中拖动到幻灯片内容视图中的列表
  5. 列表不更新,点击它或应用程序中的其他位置并返回列表将使其消失
  6. 由于

1 个答案:

答案 0 :(得分:0)

原来我在CustomListModel中重写了与更新如何绘制列表内容相关的方法。我删除了这些并重写了一些东西,它现在正在绘制。