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
// This is the only method defined by ListCellRenderer.
// We just reconfigure the JLabel each time we're called.
public Component getListCellRendererComponent
( Object value,
// value to display int index, // cell index
boolean isSelected, // is the cell selected
boolean cellHasFocus) // the list and the cell have the focus
{
setText(s);
setIcon((s.length() > 10) ? longIcon : shortIcon);
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
}
else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
setEnabled(list.isEnabled());
setFont(list.getFont());
setOpaque(true);
return this;
}
}
String[] data
= {"one",
"two",
"three",
"four"}; dataList.setCellRenderer(new MyCellRenderer());
La primera es más sencilla, pero la segunda tiene más posibilidades de personalización (como poner imágenes).