Wechsel zwischen Dynpro in Java-swing
Hatte ich bauen große Anwendung für einen meiner Kunden im Android.
Das neue Projekt ist der Aufbau der gleiche app für PC in Java. So habe ich begonnen, die mit der Nutzung der Schaukel.
Wenn Gebäude in Android verwende ich Klassen mit Aktivitäten, hatte Inhalte, Ansichten und ich könnte wechseln zwischen den Tätigkeiten.
In java habe ich bauen mehrere Klassen erweitert JFrame und ich wünschte, zwischen Ihnen zu wechseln.
Was ist der richtige Weg, um dieses?
ist diese:
new_class.setVisible(true);
old_class.setVisible(false);
der richtige Weg?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Allgemeinen Ansatz mit Swing wäre entweder kombinieren Sie alle Elemente der Benutzeroberfläche 'screens' in eine top-level-container mit der passenden Strategie (in der Regel ein
CardLayout
, aber der Teufel steckt im Detail). Diese GUI zeigt einige andere Optionen (JSplitPane
& verschachtelte layouts):Siehe auch diese Antwort für viele andere alternativen.
Für alle anderen Funktionen, die sich logischerweise in einem verschiedenen Behälter, verwenden Sie eine (möglicherweise) modales Dialogfeld oder eine
JOptionPane
. E. G. ein log-in, aufgetaucht aus dem Haupt-frame:Andere Sache zu berücksichtigen ist, dass Swing (mit einem desktop-monitor) ermöglicht es uns, ein reicher Satz von Komponenten, die die Benutzer. Zum Beispiel, surfen rund um die Android-SD-Karte Datei-system werden im Allgemeinen erzielt, indem eine Liste pro Verzeichnis, und ändern Sie den Inhalt der Liste oder Ansicht, auf in ein neues Verzeichnis. In Swing könnten Sie mit einem einzigen
JTree
für, die. So gibt es viel weniger Bedarf für "verschiedene Bildschirme" in eine desktop-GUI-toolkit, über eine entwickelt, um verwendet werden, in einem tab oder Handy.Hier ist ein Baum wie in einem Datei-browser.
CardLayout, but the devil is in the details
???, Ich sehe keine signifikante verglichen mit hinzufügen / entfernen JPanels auf der fly +1CardLayout
obwohl, ich gebe Ihnen, dass.Den richtigen Weg zum erstellen von Instanzen aus diesen
JFrames
und legen Sie dessen Sichtbarkeit.