Avatar billede johandysatan Novice
02. december 2002 - 14:36 Der er 7 kommentarer og
1 løsning

tilføje elementer TOP_TO_BOTTOM?

Hej jeg skal tilføje en forfærdelig mængde JLabels og JTextFields til et JPanel med gridLayout(0,2), problemet er at Jlabels skal tilføjes i første kolonne, og TextFields i anden.
Som det er nu bliver de tilføjet LEFT_TO_RIGHT, og altså alle labels først overfor hinanden og så alle tekstfelterne (labelsne hører selvfølgelig til tekstfelterne). Er der et TOP_TO_BOTTOM layout, man kan tildele JPanel, og hvordan gør man...API'en er helt sort lige i dette tilfælde.
Avatar billede carstenknudsen Nybegynder
02. december 2002 - 14:49 #1
Du skal bruge Box.createVerticalBox()
der returnerer et layout hvor du kan tilføje
elementer med add() metoden, så bliver alle
elementerne automatisk lige brede. Der findes
en tilsvarende Horizontal hvor komponenterne
automatisk bliver lige høje.
Avatar billede johandysatan Novice
02. december 2002 - 15:28 #2
Det er vidst ikke helt det jeg skal bruge! øh vi har:

    headerPanel = new JPanel(new FlowLayout());
    labelPanel = new JPanel(new GridLayout(0,2));

Det der skal tilføjes er så 28 labels, der bliver oprettet efter hinanden:

spillestedL = new JLabel("Spillested");
    spillestedL.setLabelFor(spillestedT);
    labelPanel.add(spillestedL);

+ 28 textFields:
spillestedT = new JTextField(20);
    spillestedT.addActionListener(this);
    labelPanel.add(spillestedT);

vi vil gerne have dem til at stå:
Label  TextField
Label  TextField
osv.

lige nu står de:
label  Label
Label  Label
...
TextField  TextField
Textfield  TextField
..

Vi kan selvfølgelig blande dem manuelt, men der er mange så det ville jo være træls!
Avatar billede carstenknudsen Nybegynder
02. december 2002 - 15:35 #3
Box tillader netop at du smider JLabels ind
fra top til bund, eller fra venstre til højre.
Avatar billede johandysatan Novice
02. december 2002 - 15:45 #4
det begynder at ligne noget men labels og textfelter skal jo stå overfor hinanden.
Avatar billede carstenknudsen Nybegynder
02. december 2002 - 15:47 #5
I stedet for at smide en label ind, smider i
et JPanel eller en Box ind hvor der ligger
en label og et tekstfelt.
Avatar billede johandysatan Novice
02. december 2002 - 17:20 #6
nu lavede vi det på den langsomme måde, fordi labels'ne og tekstfelterne ikke blev lige høje!
Avatar billede johandysatan Novice
03. december 2002 - 12:19 #7
carstenknudsen nu får du pointene, men så må du også lige kigge på mit næste spørgsmål :-).
Avatar billede carstenknudsen Nybegynder
03. december 2002 - 12:30 #8
Så lad os se det næste spørgsmål. Bortset fra det, så
er det altså lidt kompliceret at få en gui til at
være helt perfekt med lige store felter og ditten
og datten. Tit er man tvunget til at sætte størrelserne
på komponenterne direkte, setPreferredSize etc.
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