Avatar billede agent29 Nybegynder
08. december 2001 - 02:20 Der er 3 kommentarer og
1 løsning

At skrive sin egen CellRenderer

Hejsa,

Jeg skal bruge en JList der kan spænde over flere linjer pr. index[n] f.eks. ved hjælp af \\n eller <br>. Jeg har snuset mig frem til, at CellRenderer skal ændres for at multi-lines skal være muligt, og at man kan skrive sin egen CellRenderer.

Nuvel, jeg vil gerne gøre forsøget, men jeg ved ikke helt, hvor jeg skal starte. Hvor kan jeg finde den originale CellRenderer, så jeg kan kigge lidt på den ???

Hvis nogen har kastet sig ud i det før, hører jeg gerne om Jeres erfaringer med ovenstående.

Mvh
Tonni Aagesen
Avatar billede logical Nybegynder
08. december 2001 - 11:09 #1
Det er faktisk forholdsvist simpelt.

Normalt anvendes en javax.swing.DefaultListCellRenderer, som anvender en JLabel til at vise indholdet af en linie (Bruger toString()) metoden på objektet.

Du kan jo tage udgangspunkt i den, og så bare rette teksten til:

class MyListRenderer extends DefaultListCellRenderer {
  public Component getListCellRendererComponent(JList list, Object value,
          int index, boolean isSelected, boolean hasFocus){

    JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, hasFocus);

    if (value instanceof MyClass) {
      MyClass c = (MyClass) value;
      label.setText(\"<html>\" + c.line1() + \"<br>\" + c.line2() + \"</html>\");
    }
    return label;
  }
}
    }
  }
}
Avatar billede agent29 Nybegynder
08. december 2001 - 16:06 #2
Ok, inden jeg smider de 60 point i din retning... :-)

Jeg går udfra at MyClass skal erstattes med min \"main Class\"??

Hvad sker der i disse c.line1() og c.line2() ?? Jeg får en \"cannot resolve symbol\" fejl på disse.

Mvh
Tonni Aagesen
Avatar billede logical Nybegynder
09. december 2001 - 09:15 #3
Du skal læse koden, ikke bare copy-paste den. C (MyClass) er en instans af den type elementer, der ligger i din ListModel.

Dvs hvis din list indeholder instanser af klassen Kunde skal du nok rette til tilsvarende.
Avatar billede agent29 Nybegynder
09. december 2001 - 16:37 #4
Jeps, jeg har fået det til at virke - tak for hjælpen.

Mvh
Tonni Aagesen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester