使用Swing的JList组件实现可滑动的图片列表、好友列表

本文介绍了如何使用Java Swing的JList组件创建一个可滚动的图片列表和好友列表。通过结合JScrollPane、自定义的DefaultListCellRenderer子类以及DefaultListModel的子类,实现了JList每一项显示图片的功能。文章提供了实现该功能的三个关键类的思路和代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先放效果图吧,代码是从程序里抽出来的,没有特意的做效果,挺丑的凑合着看吧。前面是思路,不想看思路的,可以直接跳到后面看源码(有3个类哦)。

 

一、实现JList每一项以图片的形式展示并附带滚轮思路:

1.需要【JScrollPane】对象,将JList放置在JScrollPane上,而不是普通的JPane中。

    JScrollPane scrollPane = new JScrollPane(list);
    panel_1.add(scrollPane, BorderLayout.CENTER);

2.需要【JList】对象,JList对象中设置模型

    JList<File> list = new JList<File>();

3.需要【DefaultListCellRenderer】接口

(1)JList并不会显示图片,那么我们就重写JList的渲染器ListCellRenderer。可是ListCellRenderer是一个接口,在这里我们选择自定义一个DefaultListCellRenderer类,从API中,我们看到DefaultListCellRenderer继承了JLabel,这意味着我们可以使用这个类的对象,在绘制的时候直接设置JLabel标签的图标。而不用再去创建很多JLabel对象。

    public class ImageCellRender extends DefaultListCellRenderer {
        private static final long serialVersionUID = 1L;
    }

(2)真正控制如何绘制JList的是getListCellRendererComponent(参数列表)方法,所以我们在自定义类ImageCellRender 中需要重写getListCellRendererComponent(参数列表)方法,在重写里面的具体代码之前,我们先分析一下这个方法的参数列表:

    JList<? extends Object> list:正在绘制的JList 
    Object value:由list.getModel().getElementAt(index)返回的值 
    int index:单元格索引 
    boolean isSelected:如果选择了指定的单元格,则为true 
    cellHsaFocus:如果指定的单元格拥有焦点,则为true
  public class ImageCellRender extends DefaultListCellRenderer {
        private static final long serialVersionUID = 1L;
        public Component getListCellRendererComponent(JList<? extends Object> list,
		    	Object valu
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值