0

我为我的聊天应用程序实现了自己的 ListCellRenderer。我使用 JList 列出所有用户。单元格渲染器主要由一个图标组成,该图标显示特定用户当前是在线还是离线以及他/她的姓名。该列表由 DefaultListModel 控制,我使用它为 JList 提供必要的信息。

但是当列表模型确实改变了它的状态时(例如用户离线),列表单元渲染器似乎没有被调用?

有人知道如何解决这个问题吗?试图在 JList 实例上调用 updateUI(),但没有帮助。

提前谢谢了!

4

1 回答 1

4

单元格渲染器可能工作正常。不工作的是 ListModel。DefaultListModel不检测模型对象内部状态的变化。您需要调用fireContentsChanged列表模型。可能您需要向模型对象添加侦听器,甚至可能需要扩展DefaultListModel; 因为我没有看到它的代码,所以我不知道你的样子。

您不应该只调用一个名称听起来不错的随机方法(updateUI做一些非常不同的事情)。

于 2012-02-23T19:47:57.823 回答