home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / Chip_1998-11_cd.bin / tema / Cafe / jfc.bin / ListCellRenderer.java < prev    next >
Text File  |  1998-02-26  |  3KB  |  85 lines

  1. /*
  2.  * @(#)ListCellRenderer.java    1.8 98/01/30
  3.  * 
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  */
  20.  
  21. package com.sun.java.swing;
  22.  
  23. import java.awt.Component;
  24.  
  25.  
  26. /**
  27.  * Components that are to be used as "rubber stamps" to paint the
  28.  * cells in a JList, must implement this interface.  For example
  29.  * to us a JLabel as a ListCellRenderer one would write something
  30.  * like this:
  31.  * <pre>
  32.  * class MyCellRenderer extends JLabel implements ListCellRenderer {
  33.  *     public MyCellRenderer() {
  34.  *         setOpaque(true);
  35.  *     }
  36.  *     public Component getListCellRendererComponent(
  37.  *         JList list, 
  38.  *         Object value, 
  39.  *         int index, 
  40.  *         boolean isSelected, 
  41.  *         boolean cellHasFocus) 
  42.  *     {
  43.  *         setText(value.toString());
  44.  *         setBackground(isSelected ? Color.red : Color.white);
  45.  *         setForeground(isSelected ? Color.white : Color.black);
  46.  *         return this;
  47.  *     }
  48.  * }
  49.  * </pre>
  50.  * 
  51.  * @see JList
  52.  * @see basic.BasicListCellRenderer
  53.  * 
  54.  * @version 1.8 01/30/98
  55.  * @author Hans Muller
  56.  */
  57.  
  58. public interface ListCellRenderer
  59. {
  60.     /**
  61.      * Return a component that's been configured to display the specified
  62.      * value. The components paint method will be called subsequently to 
  63.      * "render" the cell.  If it's neccessary to compute the dimensions
  64.      * of the list, e.g. if the list cells aren't fixed size, this method 
  65.      * will be called to generate a component to apply getPreferredSize() to.
  66.      * 
  67.      * @param list The JList we're painting.
  68.      * @param value The value returned by list.getModel().getElementAt(index).
  69.      * @param index The cells index.
  70.      * @param isSelected True if the specified cell was selected.
  71.      * @param cellHasFocus True if the specified cell has the focus.
  72.      * @return A component whose paint() method will render the specified value.
  73.      * 
  74.      * @see JList
  75.      * @see ListSelectionModel
  76.      * @see ListModel
  77.      */
  78.     Component getListCellRendererComponent(
  79.         JList list,
  80.         Object value, 
  81.         int index, 
  82.         boolean isSelected, 
  83.         boolean cellHasFocus);
  84. }
  85.