<Swing Dev> 6179357: Generics: JList: ListCellRenderer & prototypeCellValue

Erik Lundqvist willcodejavaforfood at googlemail.com
Sun Feb 22 21:36:47 UTC 2009


Hi,
ListCellRenderer should absolutely be generic which rules out option 1 :)
I cannot remember ever using the prototypeCellValue so a bit worried about
saying too much about how people are using it, but it does not seem
unreasonable that it should be of the same type so I would go for Option 3
as well which seems the simpler and most common use case.

//erik

2009/2/21 Florian Brunner <fbrunnerlist at gmx.ch>

> Hi,
>
> I think adding generics to the ListCellRenderer could also be useful. The
> problem is that in JList
> the same cell renderer is used for the items as for the prototypeCellValue
> - and the
> prototypeCellValue doesn't necessarily have be of the same type as the
> items!
>
> So I think we have 3 options:
>
> 1) Don't provide a generic cell renderer/ allow only Object as parameter
> for the cell renderer in
> JList.
>
> 2) Add a second generic parameter. Eg. something like:
> class JList <E, P super E>{ ... }
>
> and use P for the prototypeCellValue property as well as for the cell
> renderer.
>
> 3) Require prototypeCellValue to be of type E. In the probably rare cases,
> where this is a problem
> one can still specify a common base class of the items and the
> prototypeCellValue as the generic
> parameter or use a raw type JList.
>
>
>
> I think it would be a pity not to provide a generic cell renderer (1) and
> think 2) is inconvenient
> and confusing, since in my experiences prototypeCellValue is only used
> rarely.
>
> So I'm voting for 3). For which option do you vote? For which reason?
>
>
>
> Note I also propose to use:
>
> ListCellRenderer<? super E> cellRenderer
>
> rather than
>
> ListCellRenderer<E> cellRenderer
>
> in JList. This would make it more flexible. Do you agree? (It's actually
> the first time, I think, I
> use 'super' with generics myself, but I think this is a good use case of
> it. So any comments are
> welcome. ;-) )
>
> -Florian
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20090222/c63cac20/attachment.html>


More information about the swing-dev mailing list