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

先放效果图吧,代码是从程序里抽出来的,没有特意的做效果,挺丑的凑合着看吧。前面是思路,不想看思路的,可以直接跳到后面看源码(有3个类哦)。一、实现JList每一项以图片的形式展示并附带滚轮思路:1.需要【JScrollPane】对象,将JList放置在JScrollPane上,而不是普通的JPane中。 JScrollPane scrollPane = new JSc...
摘要由CSDN通过智能技术生成

先放效果图吧,代码是从程序里抽出来的,没有特意的做效果,挺丑的凑合着看吧。前面是思路,不想看思路的,可以直接跳到后面看源码(有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 value, int i
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Java Swing 实现好友列表,可以使用 JList 或者 JTable 控件。其中,JList 控件是用来展示列表形式的数据,而 JTable 控件则是用来展示表格形式的数据。 具体实现步骤如下: 1. 创建 JList 或 JTable 控件,设置数据模型或表格模型; 2. 创建一个 ListModel 或者 TableModel 接口实现类,用于存储好友列表数据; 3. 将实现类对象设置给 JList 或 JTable 控件的数据模型或表格模型属性; 4. 对控件进行布局,设置样式和事件监听器。 示例代码: ```java import javax.swing.*; import java.awt.*; public class FriendListDemo extends JFrame { private JList<String> friendList; public FriendListDemo() { setTitle("好友列表"); setSize(200, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建一个 ListModel 接口的实现类 DefaultListModel<String> model = new DefaultListModel<>(); model.addElement("张三"); model.addElement("李四"); model.addElement("王五"); model.addElement("赵六"); model.addElement("钱七"); // 创建 JList 控件,设置数据模型 friendList = new JList<>(model); // 设置 JList 样式 friendList.setFixedCellWidth(180); friendList.setFixedCellHeight(30); // 创建 JScrollPane 滚动面板,将 JList 添加到其中 JScrollPane scrollPane = new JScrollPane(friendList); // 将 JScrollPane 添加到主窗口中 getContentPane().add(scrollPane, BorderLayout.CENTER); setVisible(true); } public static void main(String[] args) { new FriendListDemo(); } } ``` 上述代码演示了如何使用 JList 控件实现好友列表,其中使用了 DefaultListModel 接口的实现类来存储好友列表数据。其它控件实现原理类似,只需要更换控件和数据模型即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值