我为我的聊天应用实现了我自己的ListCellRenderer。我使用JList列出所有用户。单元格渲染器主要由一个图标组成,该图标显示特定用户当前在线或离线以及他/她的姓名。该列表由我用来向JList提供必要信息的DefaultListModel控制。
但是,当列表模型改变其状态时(例如,用户离线),列表单元格渲染器似乎没有被调用?
有人知道怎么解决这个问题吗?尝试在JList实例上调用updateUI(),但无济于事。
首先要感谢大家!
发布于 2012-02-24 03:47:58
单元格渲染器可能工作得很好。不起作用的是ListModel。DefaultListModel
不会检测到模型对象内部状态的更改。您需要在list模型上调用fireContentsChanged
。您可能需要向模型对象添加侦听器,甚至可能需要扩展DefaultListModel
;因为我看不到它的代码,所以我不知道您的代码是什么样子。
您不应该只是使用听起来很好听的名称来调用随机方法(updateUI
做了一些非常不同的事情)。
https://stackoverflow.com/questions/9419977
复制相似问题