Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing:如何定制JList';什么东西?_Java_Android_Swing_Awt_Jlist - Fatal编程技术网

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类/方法

  • 请参阅搜索

  • 请参阅搜索