利用方法public void setRenderer(ListCellRenderer aRenderer),自定义列表单元格绘制器
简单示例:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Demo
{
public static void main(String[] args)
{
MyFrame f=new MyFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.show();
}
}
class MyFrame extends JFrame
{
public MyFrame()
{
setSize(300,300);
Container c=getContentPane();
c.setLayout(new FlowLayout());
String[] names={"a","AASDASD","SDF"};
JComboBox jc=new JComboBox(names);
jc.setRenderer(new MyCellRenderer());
c.add(jc);

}
}
class MyCellRenderer extends JLabel implements ListCellRenderer {
     public MyCellRenderer() {
         setOpaque(true);
     }
     public Component getListCellRendererComponent(
         JList list,
         Object value,
         int index,
         boolean isSelected,
         boolean cellHasFocus)
     {
      setBackground(isSelected ? Color.BLUE : Color.LIGHT_GRAY);
        setHorizontalAlignment(SwingConstants.RIGHT);
        setText(value.toString());
        return this;
     }
 }