12. juni 2004 - 16:07Der er
8 kommentarer og 1 løsning
Udskiftning af JPanel
Hejsa Jeg sidder lige med et lille problem. Når min applikation starter, så starter den op med et par JPanels. Jeg vil så gerne have det sådan, at når jeg trykker på min knap, så blive jPanel = new jPanelVagtudbud();
Men grafikken opdaterer ikke :( Jeg har prøvet med en jPanel.repaint() men det virker ikke. Er der nogen, der har en ide til, hvad man kan gøre, for at det fungerer?
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.
Slettet bruger
12. juni 2004 - 17:11#1
prøv med updateUI(), eller kald til validate()-metoden. Du skal også huske at fordi du tildeler en variabel som tidligere er blevet tilføjet til et layout, så bliver layoutet ikke automatisk ændret... du skal altså derefter huske at add'e dit JPanel til din JFrame.
Normalt plejer man også at bruge CardLayout som layoutmanager når man vil skifte mellem Panels (uden at ha' tabs inde i billedet).
Jeg vil give corholio ret, du dog godt gøre det du vil
Hvis dette er din plan (altså din variabel "jPanel" skal pege på et nyt panel og vises)
JPanel jPanel = new JPanel(); getContentPane().add(jPanel);
// Ved tryk på knap jPanel = new jPanelVagtudbud();
Skal det gøres sådan JPanel jPanel = new JPanel(); getContentPane().add(jPanel);
// Ved tryk på knap jPanel = new jPanelVagtudbud(); getContentPane().remove(jPanel); getContentPane().add(jPanel); getContentPane().validate(); // da du roder med dit layout, som derfor skal valideres igen
Synes godt om
Slettet bruger
12. juni 2004 - 19:04#3
det er så sjældent at man finder en fejl i Carsten's kode, så jeg vil lige tillade mig at rette den...
Skal det gøres sådan JPanel jPanel = new JPanel(); getContentPane().add(jPanel);
// Ved tryk på knap getContentPane().remove(jPanel); jPanel = new jPanelVagtudbud(); getContentPane().add(jPanel); getContentPane().validate(); // da du roder med dit layout, som derfor skal valideres igen
Hejsa - så er jeg endelig tilbage... Det var super! Carsten smider du ikke lige et svar - du bør næsten have pointene. Det var trods alt kun en lille fejl, som corholio fandt.
Fandt iøvrigt ud af, at det var smart at slutte af med en getCintentPane().repaint(), da man ellers kan se resterne af det forrige panel.
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.