package test1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class test1
extends JPanel {
ImageIcon images[];
public test1() {
//Load the pet images
String[] picStrings = {
"userGroupRep", "Users", "workCenter", "Bill", "Factory"};
images = new ImageIcon[picStrings.length];
for (int i = 0; i < picStrings.length; i++) {
images[i] = new ImageIcon("icons/" + picStrings[i] + ".gif");
images[i].setDescription(picStrings[i]);
}
// Create the combo box
JComboBox petList = new JComboBox(images);
PicComboBoxRenderer renderer = new PicComboBoxRenderer();
renderer.setPreferredSize(new Dimension(150, 50));
petList.setRenderer(renderer);
petList.setMaximumRowCount(3);
// Layout the demo
setLayout(new BorderLayout());
add(petList, BorderLayout.NORTH);
setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
}
public static void main(String s[]) {
JFrame frame = new JFrame("PicComboBoxDemo");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.getContentPane().add(new test1(),
BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
class PicComboBoxRenderer
extends JLabel
implements ListCellRenderer {
public PicComboBoxRenderer() {
setOpaque(true);
setHorizontalAlignment(LEFT);
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());
}
ImageIcon icon = (ImageIcon) value;
setText(icon.getDescription());
setIcon(icon);
return this;
}
}
}