首页 文章

拖放后,Java List停止更新

提问于
浏览
0

我正在创建一个将文件从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

要重新创建:

  • 从项目站点的下载部分下载最新版本/源和示例xml文件

  • 运行应用程序,选择“文件”>“导入”,浏览到示例xml文件

  • 创建新幻灯片:幻灯片>新幻灯片,选择标准(任何作品)

  • 将JTree项目从库中拖动到幻灯片内容视图中的列表

  • 列表未更新,单击它或应用程序中的其他位置并返回列表将使其消失

谢谢

1 回答

  • 0

    事实证明,我在CustomListModel中重写了与更新如何绘制列表内容相关的方法 . 我删除了这些并重做了一些事情,现在正确地绘制了 .

相关问题