我是Swing
框架的新手。我有以下列表来设计..
我们有什么方法可以在JList
中设置自定义列表项吗?就像在Adapter
中编写自定义Android
一样,其中getView()
方法将返回View
以显示为ListItem ...
答案 0 :(得分:4)
您将需要自定义渲染器。您可以使用DefualtListCellRenderer
作为渲染组件使用Providing a Custom Renderer,也可以创建自定义JLabel
,您可以通过扩展组件并阻止ListCellRenderer
来指定渲染组件。 1}}。
您可以看到更多ListCellRenderer questions。链接指向“如何使用组合框”教程,但组合框和ListCellRenderer
使用相同类型的渲染器。
您将找到的基本概念是您必须覆盖方法
JLists
适用于自定义public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
或ListCellRenderer
。 Value将返回每个列表项的值。列表项可以是对象,例如DefaultListCellRenderer
,其中包含字段Person
和id
。因此,您可以将值设置为name
并使用必要的字段来呈现组件。
Person
所以基本上只是把它分解为“你会如何渲染其中一个细胞?”你会用什么组件?然后只需实现渲染器类/方法
请参阅搜索{{3}}