import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
public class ListCellRendererDemo extends JApplet {
private final static int NUMBER_OF_NATIONS = 7;
private String[] nations = new String[]
{"Denmark", "Germany", "China", "India", "Norway", "UK", "US"};
private ImageIcon[] icons = new ImageIcon[NUMBER_OF_NATIONS];
private ImageIcon[] bigIcons = new ImageIcon[NUMBER_OF_NATIONS];
private DefaultListModel listModel = new DefaultListModel();
private JList jlstNations = new JList(listModel);
private ListCellRenderer renderer = new MyListCellRenderer();
private JSplitPane jSplitPane1 = new JSplitPane();
private JLabel jlblImage = new JLabel("", JLabel.CENTER);
public ListCellRendererDemo() {
for (int i = 0; i < NUMBER_OF_NATIONS; i++) {
icons[i] = new ImageIcon(getClass().getResource(
"/image/flagIcon" + i + ".gif"));
listModel.addElement(new Object[]{icons[i], nations[i]});
bigIcons[i] = new ImageIcon(getClass().getResource(
"/image/flag" + i + ".gif"));
}
jlstNations.setCellRenderer(renderer);
jlstNations.setPreferredSize(new Dimension(200, 200));
jSplitPane1.setLeftComponent(new JScrollPane(jlstNations));
jSplitPane1.setRightComponent(jlblImage);
jlstNations.setSelectedIndex(0);
jlblImage.setIcon(bigIcons[0]);
add(jSplitPane1, BorderLayout.CENTER);
jlstNations.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
jlblImage.setIcon(bigIcons[jlstNations.getSelectedIndex()]);
}
});
}
public static void main(String[] args) {
ListCellRendererDemo applet = new ListCellRendererDemo();
JFrame frame = new JFrame();
//EXIT_ON_CLOSE == 3
frame.setDefaultCloseOperation(3);
frame.setTitle("ListCellRendererDemo");
frame.getContentPane().add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(400, 320);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}