Java Swing:如何定制JList';什么东西?
我是新来的Java Swing:如何定制JList';什么东西?,java,android,swing,awt,jlist,Java,Android,Swing,Awt,Jlist,我是新来的Swingframwork。我要设计以下清单 是否有任何方法可以在JList中定制列表项?就像在Android中编写自定义的适配器,它有一个方法getView(),该方法将返回视图,显示为ListItem…您需要一个自定义渲染器。您可以使用使用JLabel作为渲染组件的,也可以创建自定义ListCellRenderer,在其中可以通过扩展组件并强制执行ListCellRenderer来指定渲染组件 你可以看到更多。该链接指向“如何使用组合框”教程,但组合框和JLists使用相同类型的
Swing
framwork。我要设计以下清单
是否有任何方法可以在
JList
中定制列表项?就像在Android中编写自定义的适配器
,它有一个方法getView()
,该方法将返回视图
,显示为ListItem…您需要一个自定义渲染器。您可以使用使用JLabel
作为渲染组件的,也可以创建自定义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类/方法
- 请参阅搜索
- 请参阅搜索
JLabel
作为渲染组件的,也可以创建自定义ListCellRenderer
,在其中可以通过扩展组件并强制执行ListCellRenderer
来指定渲染组件
你可以看到更多。该链接指向“如何使用组合框”教程,但组合框和JLists
使用相同类型的渲染器
您将发现的基本概念是必须重写该方法
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
对于自定义的ListCellRenderer
或DefaultListCellRenderer
。该值将返回每个列表项的值。列表项可以是对象,例如字段id
和name
。因此,您可以将值大小写为Person
,并使用必要的字段渲染组件
Person person = (Person)value;
// renderer the component using Person values
// lastly return the component.
因此,基本上只需将其分解为“如何渲染其中一个单元格?”您将使用哪些组件?然后实现renderer类/方法
- 请参阅搜索
- 请参阅搜索