Java Swing JList

Java Swing JList

问题描述:

我想让JList显示数组的内容。然而,数组本身不是一个字符串数组,而是一个对象数组。Java Swing JList

那么,是否有可能使用相同的对象数组作为参数来构造我的JList(如果对象被赋予toString方法)?

谢谢。

+0

当你尝试过什么事?这个想法是先尝试一下。如果它有效,那很好。如果不是,那么你可以问一个问题,说明发生了什么。你甚至可以发布SSCCE,以便我们看到你可能做错了什么。 – camickr 2009-12-05 04:46:00

+0

我们决定采用另一种方法。谢谢。 但是,我现在仍然有更新JList的问题。 http://*.com/questions/1851217/java-swing-updating-jlist – GLRockwell 2009-12-05 05:34:28

是的。

列表使用名为单元格渲染器的对象来显示其每个项目。默认的单元格渲染器知道如何显示字符串和图标,并通过调用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