25. maj 2003 - 21:46Der 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.
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
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.
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
Synes godt om
Ny brugerNybegynder
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.