Avatar billede conrad Nybegynder
24. oktober 2001 - 09:56 Der er 4 kommentarer og
1 løsning

layout-problemer ved resize

Jeg har en frame hvorpå jeg adder flere panels. Jeg bruger gridbaglayout og gridbagconstraints til at placere panelerne. Problemet opstår ved resize.
Jeg ønsker at holde komponenterne i venstre hjørne, og lade den ekstra plads blive givet i højre hjørne.

Det virker som om hvert grid bliver større

HJÆLP
Avatar billede logical Nybegynder
24. oktober 2001 - 10:01 #1
Ja man kaster sig over udfordringer når man bruger gridbaglayout :-)

Hvis du vil have komponenterne i venstre øvre hjørne af din frame, og lade højre nedre hjørne af din frame være blank, vil jeg foreslå at du bruger \"null\" layout.
setLayout(null);
component1.setBounds(10,10,100,100); // Place and size each component directly

Eller hvis det er for hver celle, du ønsker at komponenten bliver oppe i venstre hjørne, så skal du sætte GridBagConstraints.fill=GridBagConstraints.NONE
Avatar billede conrad Nybegynder
24. oktober 2001 - 11:32 #2
Hvis jeg bruger gridbaglayout er der så nogen måde at undgå at de enkelte grids bliver større?

selvom jeg bruger
GridBagConstraints.fill=GridBagConstraints.NONE

og

  mc.anchor = GridBagConstraints.NORTHWEST;
så kommer der stadig ekstra plads om komponenterne.
Avatar billede logical Nybegynder
24. oktober 2001 - 11:46 #3
Hvis du resizer din container komponent (Den der bruger gridbaglayout), så bliver den nødt til at fordele den ekstra plads til alle de indlejrede komponenter (dvs til de enkelte grids).

Der er flere måder at komme om dit specifikke problem:
1 lav en ekstra kolonne og række yderst og nederst, som har GridBagConstraints.weightx=1 og GridBagConstraints.weighty=1, hvor alle de andre har 0 (weightx=1 for yderste kolonne, weighty=1 for nederste række)
2 læg din container component ind i en anden container, som bruger FlowLayout(FlowLayout.LEFT). F.eks. lad din container component være en Panel med gridbaglayout, og læg den ind i en Frame med FlowLayout(LEFT).
Avatar billede conrad Nybegynder
27. oktober 2001 - 16:23 #4
Tak for hjælpen. Din sidste ide med at lægge det hele oven på endnu et panel var god.
Avatar billede logical Nybegynder
27. oktober 2001 - 20:19 #5
Det er også den, jeg ville foretrække :-)
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