Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/12/2011, 03:32
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Vector con objetos, añadir en JList

Tienes dos formas (que yo conozca):

Redefinir el método toString de la clase Producto.

Crear un Custom Cell Renderer, creando una clase que implemente la interfaz ListCellRenderer y usar el método setCellRenderer.

Código Java:
Ver original
  1. class MyCellRenderer extends JLabel implements ListCellRenderer {
  2.      final static ImageIcon longIcon = new ImageIcon("long.gif");
  3.      final static ImageIcon shortIcon = new ImageIcon("short.gif");
  4.  
  5.      // This is the only method defined by ListCellRenderer.
  6.      // We just reconfigure the JLabel each time we're called.
  7.  
  8.      public Component getListCellRendererComponent(
  9.        JList list,
  10.        Object value,            // value to display
  11.        int index,               // cell index
  12.        boolean isSelected,      // is the cell selected
  13.        boolean cellHasFocus)    // the list and the cell have the focus
  14.      {
  15.          String s = value.toString();
  16.          setText(s);
  17.          setIcon((s.length() > 10) ? longIcon : shortIcon);
  18.        if (isSelected) {
  19.              setBackground(list.getSelectionBackground());
  20.            setForeground(list.getSelectionForeground());
  21.        }
  22.          else {
  23.            setBackground(list.getBackground());
  24.            setForeground(list.getForeground());
  25.        }
  26.        setEnabled(list.isEnabled());
  27.        setFont(list.getFont());
  28.          setOpaque(true);
  29.          return this;
  30.      }
  31.  }
  32.  
  33.  String[] data = {"one", "two", "three", "four"};
  34.  JList dataList = new JList(data);
  35.  dataList.setCellRenderer(new MyCellRenderer());

La primera es más sencilla, pero la segunda tiene más posibilidades de personalización (como poner imágenes).