|
问一下,我想在JComboBox里显示一组不同颜色的JLabel,
Color colors[] = { Color.black, Color.gray, Color.blue, Color.pink };
JLabel colorLabel[] = new JLabel[ colors.length ];
for (int i = 0; i < colors.length; i++)
{
colorLabel = new JLabel();
colorLabel.setBackground( colors[ i ] );
}
JComboBox colorComboBox = new JComboBox( colorLabel );
ComboBoxRenderer renderer= new ComboBoxRenderer();
colorComboBox.setRenderer( renderer );
然后
class ComboBoxRenderer extends JLabel implements ListCellRenderer
{
public ComboBoxRenderer()
{
setOpaque(true);
setHorizontalAlignment(CENTER);
setVerticalAlignment(CENTER);
}
public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
if (isSelected)
{
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
}
else
{
setBackground(list.getBackground());
setForeground(list.getForeground());
}
JLabel label = (JLabel)value;
return this;
}
}
显示出来的没有颜色的一组JLabel,还应该怎么处理一下呢 |
|