自定义jlist item的简单实现

    class myLable extends JLabel implements ListCellRenderer
    {
        myLable()
        {
            setOpaque(true);
        }
        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {

            setText(value.toString());
            Color background;
            Color foreground;

             // check if this cell represents the current DnD drop location
             JList.DropLocation dropLocation = list.getDropLocation();
             if (dropLocation != null
                     && !dropLocation.isInsert()
                     && dropLocation.getIndex() == index) {

                 background = Color.BLUE;
                 foreground = Color.WHITE;

             // check if this cell is selected
             } else if (isSelected) {
                 background = Color.RED;
                 foreground = Color.WHITE;

             // unselected, and not the DnD drop location
             } else {
                 if(index %2 ==0)
                 {
                    background = Color.WHITE;
                    foreground = Color.BLACK;
                 }else{
                    background = Color.GRAY;
                    foreground = Color.BLACK;
                 }                
             };

         setBackground(background);
         setForeground(foreground);

            return this;
        }

    }


使用:jList2.setCellRenderer(new myLable());

你可能感兴趣的:(自定义jlist item的简单实现)