这是一个英文版的《Java程序设计与问题解决》现在好多大学都当成教材

源代码在线查看: customcomboboxdemo.java

软件大小: 7282 K
上传用户: black001
关键词: Java 英文 程序设计 大学
下载地址: 免注册下载 普通下载 VIP

相关代码

				import java.awt.*;				import java.awt.event.*;				import javax.swing.*;								/*				 * CustomComboBoxDemo.java is a 1.4 demo that uses the following files:				 *   images/Bird.gif				 *   images/Cat.gif				 *   images/Dog.gif				 *   images/Rabbit.gif				 *   images/Pig.gif				 */				public class CustomComboBoxDemo extends JPanel {				    ImageIcon[] images;				    String[] petStrings = {"Bird", "Cat", "Dog", "Rabbit", "Pig"};								    /*				     * Despite its use of EmptyBorder, this panel makes a fine content				     * pane because the empty border just increases the panel's size				     * and is "painted" on top of the panel's normal background.  In				     * other words, the JPanel fills its entire background if it's				     * opaque (which it is by default); adding a border doesn't change				     * that.				     */				    public CustomComboBoxDemo() {				        //Load the pet images and create an array of indexes.				        images = new ImageIcon[petStrings.length];				        Integer[] intArray = new Integer[petStrings.length];				        for (int i = 0; i < petStrings.length; i++) {				            intArray[i] = new Integer(i);				            images[i] = createImageIcon("images/" + petStrings[i] + ".gif");				            if (images[i] != null) {				                images[i].setDescription(petStrings[i]);				            }				        }								        //Create the combo box.				        JComboBox petList = new JComboBox(intArray);				        ComboBoxRenderer renderer= new ComboBoxRenderer();				        renderer.setPreferredSize(new Dimension(200, 130));				        petList.setRenderer(renderer);				        petList.setMaximumRowCount(3);								        //Lay out the demo.				        setLayout(new BorderLayout());				        add(petList, BorderLayout.PAGE_START);				        setBorder(BorderFactory.createEmptyBorder(20,20,20,20));				    }								    /** Returns an ImageIcon, or null if the path was invalid. */				    protected static ImageIcon createImageIcon(String path) {				        java.net.URL imgURL = CustomComboBoxDemo.class.getResource(path);				        if (imgURL != null) {				            return new ImageIcon(imgURL);				        } else {				            System.err.println("Couldn't find file: " + path);				                return null;				        }				    }								    public static void main(String s[]) {				        //Make sure we have nice window decorations.				        JFrame.setDefaultLookAndFeelDecorated(true);								        //Create and set up the window.				        JFrame frame = new JFrame("CustomComboBoxDemo");				        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);				        frame.setContentPane(new CustomComboBoxDemo());								        //Display the window.				        frame.pack();				        frame.setVisible(true);				    }								    class ComboBoxRenderer extends JLabel				                           implements ListCellRenderer {				        private Font uhOhFont;								        public ComboBoxRenderer() {				            setOpaque(true);				            setHorizontalAlignment(CENTER);				            setVerticalAlignment(CENTER);				        }								        /*				         * This method finds the image and text corresponding				         * to the selected value and returns the label, set up				         * to display the text and image.				         */				        public Component getListCellRendererComponent(				                                           JList list,				                                           Object value,				                                           int index,				                                           boolean isSelected,				                                           boolean cellHasFocus) {				            //Get the selected index. (The index param isn't				            //always valid, so just use the value.)				            int selectedIndex = ((Integer)value).intValue();								            if (isSelected) {				                setBackground(list.getSelectionBackground());				                setForeground(list.getSelectionForeground());				            } else {				                setBackground(list.getBackground());				                setForeground(list.getForeground());				            }								            //Set the icon and text.  If icon was null, say so.				            ImageIcon icon = images[selectedIndex];				            String pet = petStrings[selectedIndex];				            setIcon(icon);				            if (icon != null) {				                setText(pet);				                setFont(list.getFont());				            } else {				                setUhOhText(pet + " (no image available)",				                            list.getFont());				            }								            return this;				        }								        //Set the font and text when no image was found.				        protected void setUhOhText(String uhOhText, Font normalFont) {				            if (uhOhFont == null) { //lazily create this font				                uhOhFont = normalFont.deriveFont(Font.ITALIC);				            }				            setFont(uhOhFont);				            setText(uhOhText);				        }				    }				}							

相关资源