jogrba Skrevet 9. juli 2006 Rapporter Del Skrevet 9. juli 2006 Hei, Jeg har laget et program, hvor jeg til venstre (BorderLayout.WEST) i vinduet har 4 ulike knapper som endrer innholdet i BorderLayout.CENTER vha. ActionListener... Når programmet starter, add'es automatisk panelCenter-panelet med verdien til det panelet jeg ønsker at automatisk skal komme opp i hovedvinduet. Når én av de andre 4 knappene til venstre i programmet klikkes på, endres panelCenter-panelets verdi til et annet panels: panelCenter = new nyttPanel(); add(panelCenter, BorderLayout.CENTER); pack(); Jeg har aldri laget noe slik før, så jeg aner ikke om dette er den beste måten å gjøre det på, men det har uansett dukket opp et problem: Det virker som om den originale verdien til panelCenter forblir i gui-vinduet, selv etter at jeg har oppdatert dens verdi og kjørt add(). Hvis jeg klikker på én av de andre knappene, endres innholdet i BorderLayout.CENTER, men hvis jeg da f.eks. drar vinduet litt utenfor skjemen, og så inn igjen, eller på en annen måte får vinduet til å måtte oppdatere seg selv, så forsvinner det nye innholdet til fordel for det originale panelet som var panelCenter sin verdi. Det kan altså se ut som om jeg må fjerne panelet som allerede ligger der før jeg legger til et nytt? Er det slik at hvis jeg kjører add(panelCenter, BorderLayout.CENTER); så legges den nye verdien oppå den eksisterende? Eller byttes den ut? Jeg har inntrykk av at den gamle blir liggende under, så finnes det noen metode for å fjerne komponenter fra BorderLayout.CENTER? Lenke til kommentar
Drømmemannen Skrevet 9. juli 2006 Rapporter Del Skrevet 9. juli 2006 (endret) java.awt.Container som du kaller add på har remove-metoder også. Se http://java.sun.com/j2se/1.4.2/docs/api/ja.../Container.html Ta også en titt på validate-metoden: The validate method is used to cause a container to lay out its subcomponents again. It should be invoked when this container's subcomponents are modified (added to or removed from the container, or layout-related information changed) after the container has been displayed. http://java.sun.com/j2se/1.4.2/docs/api/ja...html#validate() Endret 9. juli 2006 av balletryne Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå