gui fenster nur einmal aufrufen

Permafrost

Mitglied
hallo:)
ich möchte das wenn ich auf erstellen gehe zum zweiten fenster komme.
beim ersten mal funktioniert alles
nur wenn ich dann noch mal aufs zweite fenster gehe möchte ich nicht dass es noch mal erstellt wird sonder möchte das alte benutzen können.
geht das? wenn ja wie?


Fentser nummer 1
Java:
public class Main {

    /**
     * @param args the command line arguments
     */

   private static JFrame oJFrame = new JFrame();
    private static JButton oJBstart  = new JButton("Hauptmenü");
    private static JButton oJBcreate = new JButton("Erstelle");
    private static JButton oJBview   = new JButton("Ansicht");
    private static JButton oJBload   = new JButton("Laden");
    private static JButton oJBsave   = new JButton("Speichern");
    private static JButton oJBopen   = new JButton("Öffnen");
    private static boolean mbRunning;
    static LinkedList<Animal> moZoo = new LinkedList<Animal>();
    static String[] maSort;
    static String moDatei = ("C:\\Users\\F.Schrader\\Downloads\\SpeicherAnimal.txt");
    static String msName = null, msNickname = null, msDate = null;

    public static void main(String[] args) {

        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

        } catch (UnsupportedLookAndFeelException ex) {
            ex.printStackTrace();
        } catch (IllegalAccessException ex) {
            ex.printStackTrace();
        } catch (InstantiationException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }

        
               oJFrame.setTitle("Animals");
               oJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               oJFrame.setSize(500, 600);
               oJFrame.setResizable(false);

       JPanel oJPanel1 = new JPanel();
              oJPanel1.setLayout(new BorderLayout());

               JPanel oJPanel2 = new JPanel();

                      oJPanel2.setLayout(new BorderLayout());

                      JLabel oJLabel = new JLabel();
                             oJLabel.setIcon(new ImageIcon ("C:\\Users\\F.Schrader\\Pictures\\animals.jpg"));

                      oJPanel2.setPreferredSize(new Dimension(500, 200));
                      oJPanel2.add(oJLabel, BorderLayout.CENTER);

              oJPanel1.add(oJPanel2, BorderLayout.NORTH);

               JPanel oJPanel3 = new JPanel();
                      oJPanel3.setBackground(Color.WHITE);
                      oJPanel3.setLayout(new BoxLayout(oJPanel3, BoxLayout.Y_AXIS));

                      
                              oJBcreate.setMaximumSize(new Dimension(150, 40));
                              oJBcreate.addActionListener(new buttonAction());

                      oJPanel3.add(oJBcreate);

                      
                              oJBview.setMaximumSize(new Dimension(150, 40));
                              oJBview.addActionListener(new buttonAction());

                      oJPanel3.add(oJBview);

                     
                              oJBload.setMaximumSize(new Dimension(150, 40));
                              oJBload.addActionListener(new buttonAction());

                      oJPanel3.add(oJBload);

                      
                              oJBsave.setMaximumSize(new Dimension(150, 40));
                              oJBsave.addActionListener(new buttonAction());

                      oJPanel3.add(oJBsave);

                      
                              oJBopen.setMaximumSize(new Dimension(150, 40));
                              oJBopen.addActionListener(new buttonAction());

                      oJPanel3.add(oJBopen);
                      
              oJPanel1.add(oJPanel3, BorderLayout.CENTER);

               JPanel oJPanel4 = new JPanel();
                      oJPanel4.setBackground(Color.WHITE);
                      oJPanel4.setPreferredSize(new Dimension(180, 100));
                      
              oJPanel1.add(oJPanel4, BorderLayout.WEST);

               JPanel oJPanel5 = new JPanel();
                      oJPanel5.setBackground(Color.WHITE);
                      oJPanel5.setPreferredSize(new Dimension(170, 100));
                      
              oJPanel1.add(oJPanel5, BorderLayout.EAST);

               JPanel oJPanel6 = new JPanel();
                      oJPanel6.setBackground(Color.WHITE);
                      oJPanel6.setLayout(new BorderLayout());

                      
                              oJBstart.setPreferredSize(new Dimension(170, 50));
                              oJBstart.addActionListener(new buttonAction());

                      oJPanel6.add(oJBstart);
                     
              oJPanel1.add(oJPanel6, BorderLayout.SOUTH);

                      oJFrame.add(oJPanel1);
                      oJFrame.setVisible(true);
                      oJFrame.toFront();



    }
    private static class buttonAction implements ActionListener {


        public void actionPerformed(ActionEvent e) {

            
            if (e.getSource() == oJBcreate) {
                
                oJFrame.setVisible(false);
                Create oCreate = new Create();
                oCreate.create(mbRunning);
            }
            if (e.getSource() == oJBview)   {
                JOptionPane.showMessageDialog(null, "Schau dir alles an", "Ansehen", 1);
            }
            if (e.getSource() == oJBload)   {
                JOptionPane.showMessageDialog(null, "Laden", "Laden", 1);
            }
            if (e.getSource() == oJBsave)   {
                JOptionPane.showMessageDialog(null, "Speichern", "Speichern", 1);
            }
            if (e.getSource() == oJBopen)   {
                try {
                    Desktop oDesktop = Desktop.getDesktop();
                    oDesktop.open(new File(moDatei));
                } catch (IOException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }

            }
            if (e.getSource() == oJBstart)  {
                JOptionPane.showMessageDialog(null, "Sie sind schon im Hauptmenü", "Hauptmenü", 1);
            }
        }
    }
    public static void create(){
        oJFrame.toFront();
        oJFrame.setVisible(true);
        mbRunning = false;

    }

Fenster nummer 2

Java:
package animalgui;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Create {
     
    private static JButton oJBstart     = new JButton("Hauptmenü");
    private static JButton oJBcat       = new JButton("Katze");
    private static JButton oJBdog       = new JButton("Hund");
    private static JButton oJBmouse     = new JButton("Maus");
    private static JButton oJBnewAnimal = new JButton("Neues Tier");
    private static JFrame  oJFrame1     = new JFrame();
    private static boolean mbRunning;

    public boolean create(boolean bRunning){
            bRunning = mbRunning;
        if (bRunning = false) {
            oJFrame1.setVisible(true);
            oJFrame1.toFront();
            
        

        }
        else{
            try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

        } catch (UnsupportedLookAndFeelException ex) {
            ex.printStackTrace();
        } catch (IllegalAccessException ex) {
            ex.printStackTrace();
        } catch (InstantiationException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }


               oJFrame1.setTitle("Animals");
               oJFrame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               oJFrame1.setSize(500, 600);
               oJFrame1.setResizable(false);

       JPanel oJPanel1 = new JPanel();
              oJPanel1.setLayout(new BorderLayout());

               JPanel oJPanel2 = new JPanel();

                      oJPanel2.setLayout(new BorderLayout());

                      JLabel oJLabel = new JLabel();
                             oJLabel.setIcon(new ImageIcon ("C:\\Users\\F.Schrader\\Pictures\\animals.jpg"));

                      oJPanel2.setPreferredSize(new Dimension(500, 200));
                      oJPanel2.add(oJLabel, BorderLayout.CENTER);

              oJPanel1.add(oJPanel2, BorderLayout.NORTH);

               JPanel oJPanel3 = new JPanel();
                      oJPanel3.setBackground(Color.WHITE);
                      oJPanel3.setLayout(new BoxLayout(oJPanel3, BoxLayout.Y_AXIS));

                            JLabel oJLabel1 = new JLabel("Bitte suchen Sie sich ein Tier aus");
                                   oJLabel1.setFont( new Font( "Comic Sans MS", Font.BOLD, 10 ) );
                      oJPanel3.add(oJLabel1);
                      JLabel oJLabel2 = new JLabel("            ");
                                   oJLabel2.setFont( new Font( "Comic Sans MS", Font.BOLD, 10 ) );
                      oJPanel3.add(oJLabel2);


                              oJBcat.setMaximumSize(new Dimension(170, 40));
                              oJBcat.addActionListener(new buttonAction());

                      oJPanel3.add(oJBcat);


                              oJBdog.setMaximumSize(new Dimension(170, 40));
                              oJBdog.addActionListener(new buttonAction());

                      oJPanel3.add(oJBdog);


                              oJBmouse.setMaximumSize(new Dimension(170, 40));
                              oJBmouse.addActionListener(new buttonAction());

                      oJPanel3.add(oJBmouse);


                              oJBnewAnimal.setMaximumSize(new Dimension(170, 40));
                              oJBnewAnimal.addActionListener(new buttonAction());

                      oJPanel3.add(oJBnewAnimal);


              oJPanel1.add(oJPanel3, BorderLayout.CENTER);

               JPanel oJPanel4 = new JPanel();
                      oJPanel4.setBackground(Color.WHITE);
                      oJPanel4.setPreferredSize(new Dimension(160, 100));

              oJPanel1.add(oJPanel4, BorderLayout.WEST);

               JPanel oJPanel5 = new JPanel();
                      oJPanel5.setBackground(Color.WHITE);
                      oJPanel5.setPreferredSize(new Dimension(140, 100));

              oJPanel1.add(oJPanel5, BorderLayout.EAST);

               JPanel oJPanel6 = new JPanel();
                      oJPanel6.setBackground(Color.WHITE);
                      oJPanel6.setLayout(new BorderLayout());


                              oJBstart.setPreferredSize(new Dimension(170, 50));
                              oJBstart.addActionListener(new buttonAction());

                      oJPanel6.add(oJBstart);

              oJPanel1.add(oJPanel6, BorderLayout.SOUTH);

                      oJFrame1.add(oJPanel1);
                      oJFrame1.setVisible(true);
                      oJFrame1.toFront();

                      mbRunning = false;

        }
        return false;
    }
    private static class buttonAction implements ActionListener {


        public void actionPerformed(ActionEvent e) {


            if (e.getSource() == oJBcat) {
                JOptionPane.showMessageDialog(null, "Das ist der Bereich zum Erstellen", "Erstellen", 1);
            }
            if (e.getSource() == oJBdog)   {
                JOptionPane.showMessageDialog(null, "Schau dir alles an", "Ansehen", 1);
            }
            if (e.getSource() == oJBmouse)   {
                JOptionPane.showMessageDialog(null, "Laden", "Laden", 1);
            }
            if (e.getSource() == oJBnewAnimal)   {
                JOptionPane.showMessageDialog(null, "Speichern", "Speichern", 1);
            }
            
            if (e.getSource() == oJBstart)  {
                oJFrame1.setVisible(false);
                oJFrame1.toBack(); 
                Main.create();
                mbRunning = false;

            }
        }
    }

}
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
Ohne jetzt alles ruchgelesen zu haben, mach dir doch einfach eine static boolean bRunning, die dir anzeigt, ob das zweite Fenster geöffnet wurde oder nicht. Ist dem nicht so, muss es neu erstellt werden...
 
I

irgendjemand

Gast
grundsätzlich mit ner referenz arbeit und dann auf isVisible() prüfen ...
wenn true kommt einfach das fenster in den vordergrund holen ...

! achtung ! : NPE vorher checken
 
G

Gast2

Gast
Sehr undurchsichtig dein Code, versuchs doch erstmal in nem kleineren Rahmen:

Java:
public class FirstFrame extends JFrame {

	private JFrame secondFrame;

	public FirstFrame() {
		setTitle("First frame");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		JButton button = new JButton("show second Frame");
		button.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if (secondFrame == null) {
					secondFrame = new SecondFrame();
				}

				secondFrame.setVisible(true);
			}
		});

		add(button);
		pack();
	}

	public static void main(String[] args) {
		new FirstFrame().setVisible(true);
	}
}

Java:
public class SecondFrame extends JFrame {
	public SecondFrame() {
		setTitle("second frame");
		setDefaultCloseOperation(HIDE_ON_CLOSE);
		setSize(new Dimension(100,100));
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
J Überprüfen ob ein Fenster offen ist? Java Basics - Anfänger-Themen 8
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
celta_vigo Konsolen-Fenster ist weg Java Basics - Anfänger-Themen 5
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
A Eclipse-Fenster starten statt Konsoleausgabe Java Basics - Anfänger-Themen 2
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
O Fenster programmieren Java Basics - Anfänger-Themen 2
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
A Fenster programmieren Java Basics - Anfänger-Themen 1
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
J Best Practice DOS Fenster mit Befehlszeile (Lösung) Java Basics - Anfänger-Themen 2
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
das_leon Gesamtes Programm in einem Fenster Java Basics - Anfänger-Themen 1
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
W Es wird erst gezeichnet, wenn ich das Fenster vergrößere? Java Basics - Anfänger-Themen 20
K Interface Fenster mit 3 ComboBoxen und 1 Button Java Basics - Anfänger-Themen 13
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
I Fenster A soll Fenster B schliessen Java Basics - Anfänger-Themen 5
D Java Fenster blockiert ? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A Popup-Fenster Java Basics - Anfänger-Themen 1
L Fenster auf Knopfdruck Java Basics - Anfänger-Themen 3
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
O Finally beim Fenster schliessen Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
P Eigenes Fenster erstellen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
J Extra Fenster (Frame) Java Basics - Anfänger-Themen 20
llabusch Fenster per Button verschieben Java Basics - Anfänger-Themen 5
llabusch Fenster um x Pixel verschieben Java Basics - Anfänger-Themen 4
P Window Builder Reiter im Fenster erstellen Java Basics - Anfänger-Themen 7
S Java Fenster Java Basics - Anfänger-Themen 2
D (zwei) Fenster mit unterschiedlicher Befüllung Java Basics - Anfänger-Themen 11
A JAVA Fenster in ein PDF Konvertieren Java Basics - Anfänger-Themen 1
A Erkennung eines Button im aktiven Fenster Java Basics - Anfänger-Themen 2
B Variable im Fenster anzeigen lassen? Java Basics - Anfänger-Themen 2
S Fenster ist zu groß Java Basics - Anfänger-Themen 8
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
J Button nimmt das komplette Fenster ein?! Java Basics - Anfänger-Themen 5
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
Athena Schlichtes Fenster mit Windowskomponenten Java Basics - Anfänger-Themen 3
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
A Login Fenster Java Basics - Anfänger-Themen 3
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
Z GUI-Fenster leeren Java Basics - Anfänger-Themen 5
M Erste Schritte Probleme mit Fenster Schließen Java Basics - Anfänger-Themen 6
J ordentliche Fenster Java Basics - Anfänger-Themen 17
J Problem beim Fenster Java Basics - Anfänger-Themen 4
Z Login Fenster Java Basics - Anfänger-Themen 7
K Aus JFrame-Fenster SuM-Fenster öffnen geht nicht! Java Basics - Anfänger-Themen 8
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
O Größeres Fenster als angegeben?! Java Basics - Anfänger-Themen 2
J Eltern-Fenster ermitteln Java Basics - Anfänger-Themen 2
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
V Fenster wird nicht mittig platziert Java Basics - Anfänger-Themen 3
P Im Fenster bleiben (swing) Java Basics - Anfänger-Themen 16
J Werte ins neue Fenster übertragen Java Basics - Anfänger-Themen 6
S Fenster richtig schließen Java Basics - Anfänger-Themen 8
M Einfacher Fenster-Ablauf Java Basics - Anfänger-Themen 5
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
SexyPenny90 Wie erstelle ich ein extra Fenster mit einer Meldung Java Basics - Anfänger-Themen 2
S nur neu geöffnetes Fenster schließen Java Basics - Anfänger-Themen 3
J Willkürlich geöffnetes Fenster/Dialog anspielen? Java Basics - Anfänger-Themen 3
M OOP GUI - Fenster vererben? Java Basics - Anfänger-Themen 9
T fenster schliesen und mouse events in einer nicht abstrakten klasse Java Basics - Anfänger-Themen 6
M Erste Schritte Fenster Und VB Funktionen Java Basics - Anfänger-Themen 8
G Scrollbares Fenster bei mehr als 5 Objekten Java Basics - Anfänger-Themen 4
L Fenster winzig klein durch GridBagLayout Java Basics - Anfänger-Themen 3
R Welcher Layout Manager-für so ein Fenster? Java Basics - Anfänger-Themen 5
H Java-Fenster ohne Inhalt Java Basics - Anfänger-Themen 2
T Windows Fenster Schließen Java Basics - Anfänger-Themen 4
E JFrame Fenster bewegen Java Basics - Anfänger-Themen 8
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
E javaw öffnet trotzdem ein DOS Fenster Java Basics - Anfänger-Themen 15
M Output Input im Cmd Fenster Java Basics - Anfänger-Themen 7
M Neues Fenster Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben