2016-06-10 10 views
0

Ich muss wissen, wie man ein Layout für eine Java-Swing-Anwendung mit mehreren Fenstern auswählen.Layout für Java Multi-Fenster-Anwendung

Es hat ein Armaturenbrett Art Haupt oder Hauptfenster mit einigen Ikonen (12 oder mehr) auf ihm. Wenn Sie auf ein Symbol klicken, wird ein komplexes Fenster darüber geöffnet, und das Hauptfenster ist nicht mehr sichtbar. Es wird ein weiteres Home-Symbol geben, um zum Hauptfenster der neuen Ansicht zurückzukehren. Komplex in dem Sinne, dass das geöffnete Fenster ein Tab-Layout haben wird. Was ich wissen muss ist, welches Layout ich für diesen Zweck verwenden soll. Kartenlayout und Layered Layout sind die Kandidaten, die ich vermute. Oder sollte ich separate Frames verwenden oder ist eine andere Option verfügbar? Wenn das Fenster den ganzen Bildschirm einnehmen und die Symbole darauf positionieren kann, wäre das Zoomen entsprechend der Bildschirmgröße großartig. Ich freue mich, wenn Sie mir einen Verweis auf einen Beispielcode bereitstellen können.

Vielen Dank im Voraus für Ihre Hilfe.

+0

Siehe [Die Verwendung mehrerer JFrames, gute/schlechte Praxis?] (Http://Stackoverflow.com/q/9554636/418556) * "Ich freue mich, wenn Sie mir einen Verweis auf einen Beispielcode bereitstellen können. "* SO ist keine Codegenerierungsmaschine, und Fragen sollten nicht nach etwas fragen, das eine externe Ressource ist (z. B. 'ein Link zu da Codez'). Nebenbei, was ist deine eigentliche * Frage *? Bis jetzt hast du keinen gefragt. –

Antwort

0

Ich nehme an, Sie möchten den Startbildschirm ausblenden, wenn der Benutzer einen anderen Bildschirm öffnet, und es erneut anzeigen, wenn der Benutzer auf eine Schaltfläche wie "Home" klickt.

Für ähnliche Sache habe ich JLayeredPane verwendet. Es erlaubt Ihnen im Wesentlichen, Z-Reihenfolge für Ihre Komponenten zu setzen. In diesem Fall hätten Sie einen JPanel für jeden Bildschirm, den Sie anzeigen möchten, und Sie müssen ihn in JLayeredPane platzieren, wobei der Startbildschirm anfänglich oben ist. Wenn Sie einen anderen Bildschirm anzeigen möchten, legen Sie die oberste Ebene des Layers fest.

+0

Danke für die Antwort – LSL