在很多软件开发中为了让用户有更好的界面需要在列表中加入图片,最典型的就是聊天软件中的好友列表,如在腾讯QQ中的好友列表:
不仅加入的常规的文本,还有图片头像,这也是用标准的JAVA所不能做出来的组件,要做出这样的组件,方法很简单,自定义列表,自己描绘列表单元格,同样也需要实现接口ListCellRenderer
来描绘单元格
首先先创建一个类实现ListCellRenderer接口,但为了更方便的使用我们自定义的列表,笔者把该类和继承JList的IconList类封装在一起
代码如下:
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
public class IconList extends JList
{
public IconList(DefaultListModel model)//使用列表模板创建列表
{
super(model);//调用父类构造方方
setCellRenderer(new Ico