Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #20820
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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