Avatar billede jespersahner Nybegynder
25. maj 2003 - 21:46 Der er 1 kommentar og
1 løsning

Indlejrede JPanels, kun vise øverste JPanel

Jeg laver en grafisk applikation, hvor jeg dynamisk indlejrer nogle JPanels i hinanden, og i den forbindelse bruger jeg GridBagLayout, idet jeg ret præcist skal styre placeringen af komponenterne.

Min applikation består derfor af flere JPanels oven på hinanden.

Problemet er nu, at jeg kun ønsker at vise de øverste JPanels, mens de underliggende JPanels skal være usynlige og ikke reagere på events.

Jeg har forsøgt med setVisible(false), men det har samme effekt som remove(), og så ødelægges min grid. A.h.t. GridBagLayout har jeg altså brug for, at de underliggende JPanels bevares men ikke vises eller reagerer på events.

Den "hårde" måde er at fjerne alle komponenter, der findes i de underliggende JPanels, men det er vist en noget klodset løsning.

Hvordan løser man dette problem?
Avatar billede _carsten Nybegynder
25. maj 2003 - 23:47 #1
Hvis du sørger for at dine JPanels har samme størrelse, kan du sagtens bruge setVisible(false) uden det ødelægger din grid, du kan jo putte flere JPanels
i samme celle/celler.

Ellers prøv med setOpaque(false), den tillader underliggende pixel's at skinne igennem, jeg har ikke selv testet den, så jeg ved ikke om overliggende JPanels bliver 100% gennemsigtige.
Avatar billede whispers Nybegynder
03. juni 2003 - 22:50 #2
Med mindre du foretrækker at anvende GridBagLayout, kan du bruge null-layoutet i stedet for. Jeg vil mene at du herved vil kunne styre din elementer fuldstændigt. Samtidig vil du kunne anvende setVisible, uden at det vil forstyrre resten af di layout.

Held og lykke med det.

-Whispers
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