# 2 JFrame dispose



## Gast (15. Okt 2008)

ich habe ein JFrame was nur erscheint wenn keine Verbindung zur DB besteht. Wird dieses JFrame aktiviert soll das Anmelde JFrame geschlossen werden.

Wie kann ich bewirken, dass beim starten dieses JFrame das andere automatisch geschlossen wird?

Hier das JFrame für die fehlende Datenbankanbindung

```
final JFrame lServerData = new JFrame();
		lServerData.setLayout(new GridBagLayout());
		// label fÃ¼r das serverTF
		JLabel serverurlL = new JLabel("Bitte geben Sie den Datenbankpfad an");
```


und hier das JFrame für die Anmeldung

```
public class CAnmeldungVideo extends JFrame {
	public CAnmeldungVideo() {
		super();
		initialize();
	}

private void initialize() {
	// Operation zum Schliessen des Fensters
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// Fenstergrï¿½ï¿½e
		this.setSize(450, 250);
		// Fenstertitel
		this.setTitle("Anmeldung");

		// Fenster in Bildmitte anzeigen
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		this.setLocation((d.width - getSize().width) / 2,
				(d.height - getSize().height) / 2);

		// sichtbar "ja"
		this.setVisible(true);
	}
}
```


----------



## Zed (15. Okt 2008)

Hast du denn schon eine Anwendung die läuft? Ich mein damit das du aus der Anwenung herraus zur einen DB verbinden willst. Oder ist das eher eine Login bevor die eigentliche Anwendung gestartet wird. 

Du könntet ein JOptionsPanel für die Info verwenden oder selber einen JDialog erstellen. Sollte dann OK geklickt werden ist der nächste schritt das Frame zu schliessen oder die Anwendung abzuschiessen. 

Warum soll das Anmeldeframe den sofort geschlossen werden? Ist nicht üblich. das Frame bleibt offen bis der Anwender auf den Dialog reagiert hat. Wenn der Dialog Modal ist kann der Benutzer eh nicht mehr im Anmeldefenster rumklicken bis er auf den Dialog reagiert hat.


----------



## Guest (15. Okt 2008)

es handelt sich dabei um ein Login vor der eigentlichen Anwendung. Und das Fenster soll geschlossen werden laut Vorgabe :-(

Das ist ja das Problem, ich habe bisher keine Möglichkeit gefunden ein fremdes JFrame zu schließen.


----------



## Guest (15. Okt 2008)

Problem gelöst!


----------



## Zed (15. Okt 2008)

Man soll es nur nicht sehen. Es muss ja nicht unbeding geschlossen werden. 

Macht dir einen JDialog findes on mass Tuts im Netzt. Rufen der Dialog über den Konstruktor aus dem Anemeldeframe heraus auf. 

Übergibt den Kontruktor mit this das Anmeldeframe. es gibt eine Eingenschaft von JFames setVisible(). Auf False setzen und das Frame ist nicht mehr Sichtbar. Der User klickt auf Ok und die Anwendung schleisst sich. 

Richtig einfach wird wenn du JOptionsPane verwendest.


```
// this ist dein Anmeldeframe
this.setVisible(false);
JOptionPane.showMessageDialog(this, "DB Con faild!") // wartet solange bis geschlossen
System.Exit(0);
```


----------

