# JFrame Fenster schliessen, zerstören .



## dvcom (13. Nov 2005)

Hi all,

habe folgendes Problem...  Ich will ein JFrame Fenster schliessen, allerdings nicht
per mausklick auf das Kreuz oder so, dass geht alles, sondern es soll durch einen ActionListener geschlossen werden.
Um das ganze besser versträndlich zu machen: Beim Programmstart öffnet sich eine GUI auf der man sich einloggen kann wenn man einen Account besitzt. Ist dies noch nicht der Fall, kann man auf einen Button regisitrieren klicken, darauf hin soll sich die Login GUI schliessen und die Reg GUI öffnen. Ich habe es schon soweit, dass sich die Reg GUI über der Login GUI öffnet. Ich bekomm nur die Login GUI nicht weg .. also sie bleibt hinter dem neuen Fenster erhalten.
Leider kann ich die Methode dispose() auch nicht benutzen weil ich KLasse mit JAplet erweitert habe...
Also ich habe schon vieles versucht, aber es will einfach nicht klappen.. Kann mir einen Rat geben?
Wahrscheinlich habe ich hier auch noch unötigen Code drinnen, habe aber einfach mal alles mögliche versucht...
Ich kann die Frame Methoden nicht benutzen .. Da wird immer ein Fehler angezeigt..

Wäre für Hilfe dankbar


```
package gui;
import com.cloudgarden.layout.AnchorConstraint;
import com.cloudgarden.layout.AnchorLayout;

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.awt.Window.*;
import java.awt.event.KeyEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import java.awt.Event.*;
import java.awt.Frame.*;

import javax.swing.AbstractButton;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.WindowConstants;



public class Login extends JApplet implements ActionListener, WindowListener {
	

	private JPasswordField jPasswordField1;
	private JLabel jLabel2;
	private JButton jButton2;
	private JLabel jLabel4;
	private JLabel jLabel3;
	private JButton jButton1;
	private JLabel jLabel1;
	private JTextField jTextField1;


	public static void main(String[] args) {
		JFrame frame = new JFrame("Virtueller Arbeitsraum");
		Login inst = new Login();
		//frame.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );
		frame.getContentPane().add(inst);
		((JComponent)frame.getContentPane()).setPreferredSize(inst.getSize());
		frame.pack();
		frame.setVisible(true);
		
	}
	
	public Login() {
		
		super();
		initGUI();
	
	}
	
	//Hier sind nur die GUI Elemente

	private void initGUI() {
		try {
			AnchorLayout thisLayout = new AnchorLayout();
			this.getContentPane().setLayout(thisLayout);
			this.setSize(454, 202);
			{
				jLabel4 = new JLabel();
				this.getContentPane().add(jLabel4, new AnchorConstraint(641,794, 789, 223, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				jLabel4.setText("Noch keine Kennung? Dann bitte registrieren");
				jLabel4.setPreferredSize(new java.awt.Dimension(259, 30));
				
			}
			{
				jButton2 = new JButton();
				this.getContentPane().add(jButton2, new AnchorConstraint(819,642, 933, 377, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				jButton2.setText("Registrieren");
				jButton2.setPreferredSize(new java.awt.Dimension(120, 23));
				jButton2.addActionListener(this);
			}
			{
				jLabel3 = new JLabel();
				this.getContentPane().add(jLabel3, new AnchorConstraint(22,692, 170, 324, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				jLabel3.setText("Bitte mit Kennung einloggen");
				jLabel3.setPreferredSize(new java.awt.Dimension(167, 30));
			}
			{
				jButton1 = new JButton();
				this.getContentPane().add(jButton1, new AnchorConstraint(378,835, 502, 688, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				jButton1.setText("Login");
				jButton1.setPreferredSize(new java.awt.Dimension(67, 25));
			}
			{
				jLabel2 = new JLabel();
				this.getContentPane().add(jLabel2, new AnchorConstraint(344,287, 492, 155, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				jLabel2.setText("Passwort:");
				jLabel2.setPreferredSize(new java.awt.Dimension(60, 30));
			}
			{
				jLabel1 = new JLabel();
				this.getContentPane().add(jLabel1, new AnchorConstraint(254,382, 324, 155, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				jLabel1.setText("Benutzername:");
				jLabel1.setPreferredSize(new java.awt.Dimension(103, 14));
			}
			{
				jTextField1 = new JTextField();
				this.getContentPane().add(jTextField1, new AnchorConstraint(245,648, 349, 386, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				jTextField1.setText("");
				jTextField1.setPreferredSize(new java.awt.Dimension(119, 21));
			}
			{
				jPasswordField1 = new JPasswordField();
				this.getContentPane().add(jPasswordField1, new AnchorConstraint(383,648, 487, 386, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				jPasswordField1.setText("");
				jPasswordField1.setPreferredSize(new java.awt.Dimension(119, 21));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	//Wenn man auf Registrierung drückt, soll Reg sich öffnen und Login schliessen
	public void actionPerformed(ActionEvent e) {
				
				String test= e.getActionCommand();
				
				if(test.equals("Registrieren"))
						{
					
					JFrame frame2 = new JFrame("Registrierung");
					Reg inst = new Reg();
					frame2.getContentPane().add(inst);
					((JComponent)frame2.getContentPane()).setPreferredSize(inst.getSize());
					frame2.pack();
					frame2.setVisible(true);

                                    //Hier sollte sich das Login Fenster schliessen
					
						}
				
				
		
	}

	public void windowActivated(WindowEvent e) {}

	public void windowClosed(WindowEvent e) {}

	public void windowClosing(WindowEvent e) {}

	public void windowDeactivated(WindowEvent e) {}

	public void windowDeiconified(WindowEvent e) {}

	public void windowIconified(WindowEvent e) {}

	public void windowOpened(WindowEvent e) {}


	
}
```


----------



## L-ectron-X (13. Nov 2005)

Du musst dir erst einmal klar werden, was du überhaupt schreiben willst.
Ein Applet bzw. JApplet? Das läuft nur im Browser auf einer Webseite und hat keine main()- sondern eine init()-Methode.
Oder eine Applikation, die wird nie von Applet bzw. JApplet erben, hat eine main()-Methode und läuft auf dem Desktop.


----------



## dvcom (13. Nov 2005)

Oh ja .. eine Applikation die auf dem Desktop läuft natürlich...
Dann muss ich das ganze mit Frames machen oder?


----------



## L-ectron-X (13. Nov 2005)

Ja, statt von JApplet lässt du die Klasse von JFrame erben, vorausgesetzt, die main()-Methode wird angepasst..


----------



## dvcom (14. Nov 2005)

jo danke.. klappt alles jetzt.. Kann dann auch die dispose Methode benutzen.
 :toll:


----------

