24. oktober 2001 - 09:56Der 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.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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
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).
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.