DefaultListCellRenderer

DefaultListCellRenderer

本文介绍了将图像添加到JList项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个JList,我正在使用DefaultListModel,一切都很好,项目(字符串)被正确添加,但我想在每个字符串旁边的JList中添加一个图像(例如显示用户的状态)。可以有人帮我这个吗?在此先感谢。这是我添加元素的方式,我也可以添加图像吗?

I have a JList and i am using DefaultListModel,everything is well and the items(strings)are added correctly, but i want to add an image in JList beside each string (e.g.to show the status of the users).Can anyone help me about that? Thanks in advance.Here is how i add the elements,can i add images too?

private  DefaultListModel modelO = (DefaultListModel) Teacher.made_list.getModel();
((DefaultListModel) Teacher.made_list.getModel()).addElement(studName);


推荐答案

你必须实现(或者扩展)并使用 getListCellRendererComponent 方法返回 Jlabel ,其中包含一个图标。

You have to implement ListCellRenderer (or extend DefaultListCellRenderer) and have the getListCellRendererComponent method to return a Jlabel with an icon in it.

示例:

public class IconListRenderer extends DefaultListCellRenderer {
    public Component getListCellRendererComponent(
            JList list, Object value, int index,
            boolean isSelected, boolean cellHasFocus) {
        JLabel label = (JLabel) super.getListCellRendererComponent(
                list, value, index, isSelected, cellHasFocus);
        Icon icon = this.getIcon(list, value, index, isSelected, cellHasFocus)
        label.setIcon(icon);
        return label;
    }
    protected Icon getIcon(
            JList list, Object value, int index,
            boolean isSelected, boolean cellHasFocus) {
        // how do I get icon?
    }
}

你必须实现 getIcon 方法。

这篇关于将图像添加到JList项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-04 22:11