我正在尝试制作一个 JList 来显示数组的内容。然而,数组本身不是字符串数组,而是对象数组。
那么,是否可以使用与参数相同的对象数组来构造我的 JList(如果为对象提供了 toString 方法)?
谢谢。
是的。
列表使用称为单元格渲染器的对象来显示其每个项目。默认的单元格渲染器知道如何显示字符串和图标,它通过调用来显示对象
toString
。
请参阅:http: //java.sun.com/docs/books/tutorial/uiswing/components/list.html
JList 是一个基于 MVC 的控件,就像 Swing 的其余部分一样。您可以向 JList 传递对象数组、字符串数组或向量,然后提供 ListCellRenderer 以呈现您传入的对象(默认情况下使用DefaultListRenderer(它只是一个 JLabel))。
如果您不传递字符串,我不知道如果您不设置 ListRender 来呈现对象,那么默认行为是什么。这是不好的做法。很容易覆盖 DefaultListRenender 调用 Object.ToString() 是安全的。
在这里查看更多 JList 信息:http: //java.sun.com/products/jfc/tsc/tech_topics/jlist_1/jlist.html