Article View: be.comp.programming
Article #5255Re: Java JList & toString() method vraagje
From: DyXin
Date: Fri, 16 May 2003 11:46
Date: Fri, 16 May 2003 11:46
52 lines
3786 bytes
3786 bytes
> Ik zit met volgend "probleem": Ik heb een applicatie (peer-to-peer chat > programa) geschreven, waarin onder andere een JList in zit verwerkt met > hierin de "contacts". Deze contacts zijn Objecten van het type "public class > Phoenix extends UnicastRemoteObject implements IPhoenix", en bevatten elke > oa een String name (de naam van de contact-persoon). > IPhoenix is een klasse van het type "public interface IPhoenix extends > Remote", die enkel een aantal method definitions bevat (die elk een "thows > RemoteException" hebben, omwille van het feit dat de classe "extends Remote" > is). > > Nu dacht ik zo: elke contact heeft een Vector met hierin zijn > contactpersonen (IPhoenix-objecten, dus NIET de "echte" (subclass) Phoenix > objecten). Als ik nu de toString() method over-write, dan kan ik, dacht ik, > deze vector rechstreeks geven aan het JList-object, die dan via de > toString() method de naam van de contactpersonen in de lijst laat zien! > Allemaal goed en wel, maar als ik de toString() method in Phoenix > overschrijf, krijg ik niets te zien in de lijst! Ik dacht dat dit misschien > kon liggen aan het feit dat de Vector IPhoenix objecten bevat, en niet > expliciet Phoenix-objecten, maar probleem is dat ik in IPhoenix de toString > method niet kan over-write, omdat die dan "thows RemotException" in z'n > definition moet hebben staan, en dan krijg je een compile error! > > Weet er iemand een oplossing om toch met ��n Vector te werken in plaats van > 2 Vectors (1 met de echte objecten, 1 met de namen (Strings))? Ik heb het opgelost gekregen als volgt... Om genericiteit te behouden blijft de vector een vector van IPhoenix objecten, zodanig dat eender welke klasse die IPhoenix implementeert "erin past". Probleem is dan dat de standaard toString() method niet kan overschreven worden, en je dus in je lijst gewoon de "geheugeninhoud" ziet van het object ipv een "mooie" naam. Na wat zoeken heb ik echter gevonden dat je de default ListCellRenderer methode die JList aanroept om het object uit de vector op het scherm af te beelden, kunt overschrijven! In MyellRenderer controleer ik dan eerst of het object van type (IPhoenix) is, en wanneer dit het geval is roep ik de methode getName() aan die daarin gedefinieerd staat, in plaats van default de toString method(). Wanneer het object noet van type IPhoenix is wordt de standaard toString() method opgeroepen!... Nu heb ik toch met ��n vector van (Remote) objecten m'n contactlist kunnen opbouwen! thnx! mvg, DyXin
Technical Details
Message-ID:
<kc4xa.4554$1u5.337@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!newsfeed.news2me.com!cyclone1.gnilink.net!wn14feed!wn13feed!wn12feed!worldnet.att.net!204.71.34.3!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<MoRwa.3803$1u5.425@afrodite.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: 107324,eff969ebc9b5fdb5 X-Google-Attributes: gid107324,public X-Google-Thread: fcea4,eff969ebc9b5fdb5 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-05-16 04:48:01 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!newsfeed.news2me.com!cyclone1.gnilink.net!wn14feed!wn13feed!wn12feed!worldnet.att.net!204.71.34.3!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail From: "DyXin" <DyXin@p@ndor@.be> Newsgroups: be.comp.programming,nl.comp.programmeren References: <MoRwa.3803$1u5.425@afrodite.telenet-ops.be> Subject: Re: Java JList & toString() method vraagje Lines: 54 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Message-ID: <kc4xa.4554$1u5.337@afrodite.telenet-ops.be> Date: Fri, 16 May 2003 11:46:24 GMT NNTP-Posting-Host: 213.119.145.135 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1053085584 213.119.145.135 (Fri, 16 May 2003 13:46:24 MET DST) NNTP-Posting-Date: Fri, 16 May 2003 13:46:24 MET DST Organization: Telenet Internet