[英]Java Swing : how to customize the JList's items?
我是Swing
框架新手。 我要设计以下清单。
有什么方法可以在JList
自定义列表项? 就像在Android
编写自定义Adapter
一样,它具有getView()
方法,该方法将返回将View
显示为ListItem的View
...
您将需要一个自定义渲染器。 您可以使用将JLabel
用作呈现组件的DefualtListCellRenderer
,也可以创建自定义ListCellRenderer
,在其中可以通过扩展组件并推动ListCellRenderer
来指定呈现组件。
您可以看到更多的提供自定义渲染器 。 链接指向“如何使用组合框”教程,但是组合框和JLists
使用相同类型的渲染器。
您将发现的基本概念是,您将不得不重写该方法
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
用于自定义ListCellRenderer
或DefaultListCellRenderer
。 值将返回每个列表项的值。 列表项可以是一个对象,例如具有字段id
和name
的Person
。 因此,您可以将值设置为Person
并使用必要的字段来呈现组件。
Person person = (Person)value;
// renderer the component using Person values
// lastly return the component.
因此,基本上将其分解为“您将如何渲染其中一个单元格?” 您将使用哪些组件? 然后只需实现renderer类/方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.