/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
JList's med forskellige oplysninger for de~
Fra : ottesen


Dato : 26-11-02 11:15

Hej!
I en JList listes de enkelte objekter via deres toString() metode. Men hvis
jeg nu har 2 JList's som hver især skal vise nogle forskellige oplysninger
for den samme gruppe objekter - hvordan gør jeg så det? Jeg kan jo ikke lave
2 forskellige toString() metoder da toString()-metoden jo kaldes som default
og ikke er en jeg kalder "manuelt".

Håber jeg har formuleret mig nogenlunde tydeligt

/ottesen

 
 
Lars Dam (26-11-2002)
Kommentar
Fra : Lars Dam


Dato : 26-11-02 18:27

On 26 Nov 2002 02:14:56 -0800
ottesen@sol.dk (ottesen) wrote:

> Hej!
> I en JList listes de enkelte objekter via deres toString() metode. Men hvis
> jeg nu har 2 JList's som hver især skal vise nogle forskellige oplysninger
> for den samme gruppe objekter - hvordan gør jeg så det? Jeg kan jo ikke lave
> 2 forskellige toString() metoder da toString()-metoden jo kaldes som default
> og ikke er en jeg kalder "manuelt".

To umiddelbare muligheder:

1) Lav en CellRenderer til hver type.

2) Lav en wrapper klasse, som du bruger til objekter i een af listerne.

class Wrapper{
   SomeObject someObject;
   public Wrapper( SomeObject someObject ){
      this.someObject = someObject;
   }
   public String toString(){
      return someObject.getAValue();
   }
}

> Håber jeg har formuleret mig nogenlunde tydeligt
>
> /ottesen

vh. ld

Lars Dam (26-11-2002)
Kommentar
Fra : Lars Dam


Dato : 26-11-02 18:36

On Tue, 26 Nov 2002 18:27:01 +0100
Lars Dam <larsdam___YeahNoUnderscores_____@______post2.tele.dk> wrote:

> On 26 Nov 2002 02:14:56 -0800
> ottesen@sol.dk (ottesen) wrote:
>
> > Hej!
> > I en JList listes de enkelte objekter via deres toString() metode. Men hvis
> > jeg nu har 2 JList's som hver især skal vise nogle forskellige oplysninger
> > for den samme gruppe objekter - hvordan gør jeg så det? Jeg kan jo ikke lave
> > 2 forskellige toString() metoder da toString()-metoden jo kaldes som default
> > og ikke er en jeg kalder "manuelt".
>
> To umiddelbare muligheder:
>
> 1) Lav en CellRenderer til hver type.

Det skal lige siges at jeg ville nok foretrække en variant af denne løsning:

class MyCellRenderer implements ListCellRenderer{
   ListCellRender original=null;
   public MyCellRenderer(ListCellRender original){
      this.original = original;
   }
   public Component getListCellRendererComponent(
      JList jlist,
      Object value,
      int index,
      boolean isSelected,
      boolean cellHasFocus){

      String presentation = ((ObjectType)value).getOtherDataThanToString();
      return original.getListCellRendererComponent(
         jlist,
         presentation,
         index,
         isSelected,
         cellHasFocus;
   }
}

Aktiver den på flg. måde:

somejlist.setCellRenderer( new MyCellRenderer( somejlist.getCellRenderer()));

>
> 2) Lav en wrapper klasse, som du bruger til objekter i een af listerne.
>
> class Wrapper{
>    SomeObject someObject;
>    public Wrapper( SomeObject someObject ){
>       this.someObject = someObject;
>    }
>    public String toString(){
>       return someObject.getAValue();
>    }
> }
>
> > Håber jeg har formuleret mig nogenlunde tydeligt
> >
> > /ottesen
>
> vh. ld

Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste