本文介绍了将图像添加到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项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!