Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #20820

Re: Generic JList and ListCellRenderer?

From Knute Johnson <nospam@knutejohnson.com>
Newsgroups comp.lang.java.programmer
Subject Re: Generic JList and ListCellRenderer?
Date 2012-12-30 08:27 -0800
Organization A noiseless patient Spider
Message-ID <kbpq25$f1f$1@dont-email.me> (permalink)
References <kbkqb6$uu3$1@dont-email.me> <nospam-49C732.20563528122012@news.aioe.org>

Show all headers | View raw


On 12/28/2012 5:56 PM, John B. Matthews wrote:
> In article <kbkqb6$uu3$1@dont-email.me>,
>   Knute Johnson <nospam@knutejohnson.com> wrote:
>
>> I've been trying to clean up some really old code and I've hit some
>> snags.  I've got several modified JLists and the ListCellRenderers
>> for them and thought it would make sense to have generic classes that
>> could be extended for different data types that need to be displayed.
>>   The example below displays InetAddresses in the JList.  I've got
>> another implementation of JList that does a lot more than what this
>> one does but I wanted to keep this example simple and focus on the
>> ListCellRenderer.
>
> Good use of a class literal as runtime type token:
>
> <http://docs.oracle.com/javase/tutorial/extra/generics/literals.html>
>
>> MyListCellRenderer extends the getListCellRenderer method of
>> DefaultListCellRenderer and adds a new method, textToDisplay().  I
>> added a field to the constructor that specifies the class of the data
>> element to be displayed.  That class information is the test to make
>> the call to the textToDisplay() method.  The
>> InetAddressListCellRenderer class extends MyListCellRenderer to get
>> this to display nice neat Strings for the InetAddresses.
>>
>> I think this whole thing is a little kludgie.  I've been playing with
>> it for so long now I'm not getting anywhere anymore.  I was hoping
>> somebody would say "gee you ought to go this way" or "no that is
>> really brilliant code my man!" and I'll leave it as is :-).
>>
>> Anyway, please take a look and if you have any great ideas, I would
>> appreciate the feedback.
>
> Some suggestions:
>
> Use the @Override annotation.
>
> Use the for-each (Iterable) loop in setListData():
>
> @Override
> public void setListData(Vector<? extends E> v) {
>      model.clear();
>      for (E e : v) {
>          model.addElement(e);
>      }
> }
>
> Consider supporting List:
>
> public void setListData(List<? extends E> v) {
>      model.clear();
>      for (E e : v) {
>          model.addElement(e);
>      }
> }
>
> Catch the more specific exception:
>
> catch (UnknownHostException e)
>

Thanks John.

-- 

Knute Johnson

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Generic JList and ListCellRenderer? Knute Johnson <nospam@knutejohnson.com> - 2012-12-28 11:01 -0800
  Re: Generic JList and ListCellRenderer? "John B. Matthews" <nospam@nospam.invalid> - 2012-12-28 20:56 -0500
    Re: Generic JList and ListCellRenderer? Knute Johnson <nospam@knutejohnson.com> - 2012-12-30 08:27 -0800
  Re: Generic JList and ListCellRenderer? "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2012-12-29 15:11 +0000
    Re: Generic JList and ListCellRenderer? Knute Johnson <nospam@knutejohnson.com> - 2012-12-30 08:29 -0800

csiph-web