Avatar billede faceorbit Nybegynder
23. maj 2001 - 17:08 Der er 6 kommentarer og
1 løsning

Hvordan drejer man en JTabel

Findes der en gratis implementering af en tabel, hvor kolonnerne vises vertikalt og rækkerne horisontalt ?
Avatar billede bearhugx Nybegynder
23. maj 2001 - 17:12 #1
Jeg kender ikke en implementering, men for mig lyder det som om at du skal programmere din egen CellRenderer...

(Måske er det bare mig, der forstår spørgsmålet forkert:-)) (det er sket før :-)

/Søren
Avatar billede faceorbit Nybegynder
23. maj 2001 - 17:25 #2
JTabel præsentation:

fornavn    efternavn    cprnr
-------------------------------------
hans        jensen        123456 1234
anders      and          222222 4444



Ønskes:

fornavn  |  hans            anders
efternavn |  jensen          and
cprnr    |  123456 1234    222222 4444
Avatar billede faceorbit Nybegynder
23. maj 2001 - 17:25 #3
Det kom sgu ikke til at se for smart ud, men jeg håber det illustrerer ideen
Avatar billede bearhugx Nybegynder
23. maj 2001 - 17:41 #4
I din TableModel, kan du så ikke bare vende om på col og row ???
(dvs. bytte om på col og row, når du indsætter det i modellen)

Det skulle da kunne løse det...
Avatar billede logical Nybegynder
23. maj 2001 - 18:52 #5
Der skal laves lidt for at få det til at virke, men det kan godt lade sig gøre..

pkt. lav en table og fjern tableheader (table.setTableHeader(null);)

Enten skamhug din datamodel, eller lav en decorator, så du på forespørgsel i row, col får de rigtige data...
(1,1) skal returnere fornavn, (1,2) skal returnere efternavn
(2,1) skal returnere hans, (2,2) skal returnere jensen...
etc

Sørg for at din datamodel svarer noget sigende på getColumnClass(int col), når det gælder første række, f.eks.

public Class getColumnClas(int col) {
if (col==1)
    return Header.class; // A simple class just for reference
  return Object.class;
}


Få fat i en HeaderCellRenderer fra en TableColumn (den har en protected createDefaultHeaderRenderer(), som laver den der header), og prop den ind i din JTable for din header.class
(table.setDefaultRenderer(Header.class, myHeaderCellRenderer); )

Så skulle den vist være der.

Beklager det lidt hurtige svar, jeg har lidt travlt
Avatar billede faceorbit Nybegynder
24. maj 2001 - 10:35 #6
logical: Jeg køber den med at lave en decorator :), da min datamodel, ikke er min egen-
Avatar billede bearhugx Nybegynder
24. maj 2001 - 19:35 #7
Jeg vil også gå med Logicals svar - det _er_ en bedre metode (kan læse GOF::design pattern ud over det hele :-))

/Søren Munk Skrøder
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