05. november 2005 - 16:27Der er
12 kommentarer og 1 løsning
For lille vindue ved pack
Jeg har en JFrame med et GridLayout, hvor jeg tilføjer en masse JLabels og derefter kalder pack. I hver enkel JLabel har jeg en JTextField, hvori der står en enkel char.
Problemet er at når vinduet vises, er det overhovedet ikke resizet, hver label fylder ca. 5 pixels i højde og bredde. Jeg går ud fra at det har noget at gøre med JLabelens Layout (jeg bruger lige nu BorderLayout), og jeg har kigget på nogle andre Layouts, men har ikke kunnet finde noget der virker.
Jeg har også prøvet at sætte preferredSize på mine JLabels til at være lig med preferredSize på mine JTextFields, men det er ikke nok, det er kun det halve af tekstfelterne, der vises.
Så tja...nogle forslag til hvordan jeg kan få mit vindue resizet ordentligt og automatisk, altså uden at angive en bestemt højde eller bredde?
Hmm, nu er jeg for hurtig, for det kan godt være at jeg har fundet fejlen men det hjælper fedt, når jeg rent faktisk skal have en Border på min JLabel.
Så mit problem er der stadig. Såvidt jeg kan se, går borderen ind over tekstfeltet, altså tager noget af dens plads, og dermed bliver noget af teksten overskygget.
Så jeg spekulerede på om der var en måde at få borderen talt med når jeg resizer, eller om jeg evt. i stedet for kan lave en border for mit GridLayout som omkranser alle min Components på alle sider.
He he, selvfølgelig har du ret, jeg burde også have rettet det, jeg ville bare ikke have den ekstra variabel i min oprindelige kode :)
Men problemet er at jeg gerne vil have felterne til at tilpasse deres størrelse præcis efter teksten, hvilket de sådan set også gør, men borderen (som SKAL være der), tager en bid af det :(
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.