Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #20785
| From | "John B. Matthews" <nospam@nospam.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Generic JList and ListCellRenderer? |
| Date | 2012-12-28 20:56 -0500 |
| Organization | The Wasteland |
| Message-ID | <nospam-49C732.20563528122012@news.aioe.org> (permalink) |
| References | <kbkqb6$uu3$1@dont-email.me> |
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)
--
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>
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