import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ComboBoxDemo extends JPanel { JLabel picture; public ComboBoxDemo() { String[] petStrings = { "Bird", "Cat", "Dog", "Rabbit", "Pig" }; // Create the combo box, select the pig JComboBox petList = new JComboBox(petStrings); petList.setSelectedIndex(4); petList.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JComboBox cb = (JComboBox)e.getSource(); String petName = (String)cb.getSelectedItem(); picture.setIcon(new ImageIcon("images/" + petName + ".gif")); } }); // Set up the picture picture = new JLabel(new ImageIcon("images/" + petStrings[petList.getSelectedIndex()] + ".gif")); picture.setBorder(BorderFactory.createEmptyBorder(10,0,0,0)); // The preferred size is hard-coded to be the width of the // widest image and the height of the tallest image + the border. // A real program would compute this. picture.setPreferredSize(new Dimension(177, 122+10)); // Layout the demo setLayout(new BorderLayout()); add(petList, BorderLayout.NORTH); add(picture, BorderLayout.SOUTH); setBorder(BorderFactory.createEmptyBorder(20,20,20,20)); } public static void main(String s[]) { JFrame frame = new JFrame("ComboBoxDemo"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); frame.setContentPane(new ComboBoxDemo()); frame.pack(); frame.setVisible(true); } }