2017-04-03 3 views
-1

Ich habe zwei JPanel-Instanzen in einem JLayeredPane, in verschiedenen z-Ordnungen. Ich möchte, dass meine beiden JPanels immer den Raum des LayeredPane füllen.Lassen Sie Kinder von JLayeredPane den verfügbaren Speicherplatz des Containers füllen

Die Idee ist für mich, die Anzeige eines zweiten Bedienfeldes über dem ersten anzuzeigen, um einen modalen Dialog anzuzeigen. Ja, ich könnte einfach einen JDialog verwenden, aber ich dachte, es würde Spaß machen, etwas Transparenz über dem abgedeckten JPanel zu erzeugen, um einen schönen Effekt zu erzielen.

Ich finde das mit einem Layout-Manager auf dem JLayeredPane, wie BorderLayout, und versuchen, beide Kinder auf CENTER-Konflikte zu setzen, da beide Panels nicht in der Mitte sein können.

Gibt es einen Trick, den ich nicht sehe?

+0

"Ich möchte, dass meine beiden Kinder-JPanels immer den Raum des LayeredPane füllen." Sie sind verwirrt, was Sie wollen. Wenn Sie dies tun, wird der obere JPanel alles im unteren JPanel verdecken, da JPanel seinen Hintergrund zeichnet. – ControlAltDel

+0

Welches ist der Punkt, wie im nächsten Absatz beschrieben. – gdbj

Antwort

1

Die Idee ist für mich die Anzeige einer zweiten Platte über der Oberseite des ersten

Der einfachste Weg zu wechseln, dies zu tun ist, eine Glass Pane zu verwenden.

Überprüfen Sie die Disabled Glass Pane für ein Beispiel für diesen Ansatz.

+0

Dies scheint genau das zu sein, was ich gesucht habe. Ich könnte hinzufügen, dass ich bereits einige Artikel und SO-Antworten von Ihnen gelesen habe, was sehr hilfreich war. Danke eine Tonne! – gdbj

+0

haben immer noch eine grundlegende Frage tho, wie man den Raum des Behälters füllt. Ich habe versucht, einen 'ComponentListener' in layeredPanel zu verwenden, indem ich componentResized überschreibe, um die Größe meiner untergeordneten Container festzulegen, aber es legt die Größe basierend auf mousedown und nicht mouseup fest. Das Timing der Größe ist falsch. – gdbj

+0

Im Grunde brauchen Sie einen super einfachen Layout-Manager, der einfach die Komponente auf die Größe des Elternteils erweitert! Ich wünschte, ich könnte einfach CSS für dieses Ding verwenden ... gah. – gdbj

Verwandte Themen