创建运行对象的非toString方法的自定义JList

时间:2018-08-10 17:58:03

标签: java jlist

在我尝试创建的游戏中,我有一个类来显示JList中某个角色的清单。我知道,使用对象填充JList会导致在实际显示JList时运行该对象的toString方法。我想创建一个自定义JList,它除了在填充它的Objects上运行toString方法外,还可以执行其他操作。我知道我可以覆盖对象上的toString方法,但是我需要toString方法不同于清单中显示的内容。由于某种原因,我无法查看诸如Object或JList之类的类(我仍然可以查看自己的类),否则我将自己查看代码。 (TL; DR-我需要覆盖JList中在填充它的对象上运行toString的方法)

侧面说明:JList中只会放入特定类型的Object,所以我知道我打算运行什么而不是toString,并且自定义JList将仅在1个类中使用。

3 个答案:

答案 0 :(得分:1)

正确的方法是使用ListModel。有关详细信息,请阅读the official tutorial on How to Use Lists。请密切注意Creating a ListModel上的部分。

答案 1 :(得分:0)

最简单的方法可能是从JList生成一个子类-一个新类扩展JList-并添加所需的方法并使用它代替JList

答案 2 :(得分:0)

我设法为自己找到了答案。必须编写一个扩展JLabel的自定义类,以实现ListCellRenderer <>。在此,您可以确切指定JList中每个单元格的文本部分中包含的内容。