Wie gehen Sie zurück zu einer JFrames in Java

Ich habe eine Schaltfläche in einem JFrame, wenn gedrückt, es führt uns zu einem anderen frame.
Ich habe diesen code:

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

    SecondForm secondform = new SecondForm();
    secondform.setVisible(true);
    setVisible(false);
    dispose();
    }

Also der neue frame öffnet und alles ist ok. Dann legte ich eine weitere Schaltfläche in das zweite Bild, um zurück zu den vorherigen frame. Ich habe diesen code:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    MainForm Mform = new MainForm();
    Mform.setVisible(true);
    setVisible(false);
    dispose();
}                                        

Die Sache ist, ich glaube nicht, dass dies der richtige Weg ist, dies zu tun. Was ich will ist:

  • verstecken das erste Bild
  • zeigen die neue zweite
  • entsorgen Sie die zweite
  • zeigen wieder die ersten

Gibt es eine Möglichkeit, das zu tun, mit dem ersten MainForm Instanz und nicht eine neue erstellen jedes mal, wenn ich zurück gehen möchte.
Ich überwacht mein Programm und jedes mal, wenn ich hin und her gehen die frames und wie ich vermutete, der ram verwendet wird, indem es immer größer.

Vielen Dank im Voraus.

EDIT : ich habe ein login-system, und wenn der Benutzer setzen Sie die richtigen Anmeldeinformationen ein neues ManiForm-Instanz erstellt.

MainForm Mform = new MainForm();
Mform.setVisible(true);

Dass die Instanz ist, die ich verwenden möchten. Ii es gibt einen Weg, um MForm wieder sichtbar aus dem secondform?

Erstmal danke für die Hilfe!

Ich bin damit einverstanden, dass es einfacher ist, nicht zu verwenden mehr als eine JFrames, aber können Sie mir bitte sagen, welche ist die bessere Weise, das zu tun, was ich gefragt habe das im ersten post?
Die Antwort Robin mir gegeben hat, sehr schön, aber ich weiß nicht, was zu setzen, da ein argument, da*:

java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
    *   new SecondForm().setVisible(true);
        }
    });

Es ist aus der auto-generierten code von NetBeans.

Versuchte ich

new SecondForm(super).setVisible(true);

aber ich bekomme immer noch Fehler bei der Kompilierung. Anscheinend muss ich setzen super.something() aber ich weiß nicht, was. Ich habe versucht, viele, aber kein Glück.

Wie viele professionelle Anwendungen verwenden Sie das windows-swap-wohl oder übel? Nicht viele, ich Wette. Stattdessen betrachten swapping Aussicht mit einem einzigen JFrame und ein CardLayout, swaps JPanels, die jeweils mit einem anderen Blick für deine GUI.
vereinbart. Oder öffnen Sie einen neuen dialog, aber zumindest das ursprüngliche Hauptfenster der Anwendung sichtbar und aktiv

InformationsquelleAutor Christos Baziotis | 2012-01-07

Schreibe einen Kommentar