Fenster schließen

T

Tunemaster

Hi Leute!
Ich hab ein kleines Problem

Ich habe ein Hauptfenster und öffner von dieser ein anderes fenster!
wie kann ich das 2. fenster schließen ohne das ich das Hauptfenster schließe?

Danke MfG Rene
 
Original geschrieben von Tunemaster
Hi Leute!
Ich hab ein kleines Problem

Ich habe ein Hauptfenster und öffner von dieser ein anderes fenster!
wie kann ich das 2. fenster schließen ohne das ich das Hauptfenster schließe?

Danke MfG Rene

meinFenster.dispose();
 
Hallo!

siehe:

Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

/*
 * Created on 01.04.2004
 */

/**
 * @author Administrator
 */
public class TwoFrames extends JFrame {

	public static int frmCnt = 1;

	public TwoFrames() {
		super("Frame1");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JButton button = new JButton("Button1");

		button.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				new JFrame("Frame" + ++frmCnt) {
					{
						setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
					}
				}
				.show();
			}

		});
		getContentPane().add(button);
		pack();
	}

	public static void main(String[] args) {
		new TwoFrames().show();
	}
}

Gruß Tom
 
Hi, ich arbeite mit ihm (Tunemaster) zusammen. :)

Nochmal eine genauere Schilderung:

Es gibt ein Hauptfenster, welches ein kleines Nebenfenster per Knopfdruck auf einen Button generiert. In diesem Nebenfenster ist ein Button für "Abbrechen", also einfach das Fenster schließen.

Code:
    myCancelButton.addActionListener(new AbstractAction("Beenden") {
          public void actionPerformed(ActionEvent e) {
            System.out.println("Abbruch durch Benutzer!");
            // Action done by "Abbrechen" button!
          }
        });

Dort wo das Comment steht hatte ich schon

Code:
this.close();
this.dispose();
this.exit();
...

Aber es funktioniert einfach nicht. Das Fenster muss sich ja "selbst" schließen, das Hauptfenster weis im Prinzip garnicht was das Nebenfenster macht ;)

Hoffe ich konnte es ein bißchen genauer beschreiben...
 
Hallo!

Was tut denn dein

this.exit(); ?

Wenn da System.exit(int exitCode) aufgerufen wird, dann beendet sich natürlich auch die gesamte Anwendung, da damit die VM angehalten wird...

Gruß Tom
 
Original geschrieben von Daisho
Dort wo das Comment steht hatte ich schon
Code:
this.close();
this.dispose();
this.exit();
...
Mit "this" an der Stelle wo der Kommentar steht sollte es gar nicht erst kompilieren, da sich das this dort auf das anonyme AbstractAction Objekt bezieht und dieses keine dieser Methoden besitzt. Ein dispose(); ohne this sollte hingegen den gewünschten Effekt erzielen.

Peter
 
:eek: Ack ... stimmt, habs derweil aber schon per Funktion geschafft ( public void CloseMyWindow() { this.dispose(); }


thx!
 
Re: Fenster schließen - Und wie vollständig los werden?

Hey!

Obwohl ich das mit folgendem Code aufgerufene Formular mit setVisible(false) und dispose() schließe, läßt es sich durch erneutes Drücken auf diesen Schalter wieder anzeigen. Es sollte durch dispose() doch vollständig weg sein, oder?

jBtnMitarbeiterZuAuftrag.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if (fMA2Auftrag == null) {
setVisible(false);
fMA2Auftrag = new FrmMitarbeiterZuAuftrag(LVfrmMe, Integer.parseInt(jTxtID.getText()));
fMA2Auftrag.setVisible(true);
}
else {
//funktioniert auch, wenn Formular mit dispose() geschlossen wurde
//Offenbar kann also auch nach Freigabe aller Ressourcen noch das Objekt geöffnet werden!?
fMA2Auftrag.setVisible(true);
System.out.println("2. Teil");
}
}
});

Ich hätte hier wenigstens einen Fehler erwartet. Wie werde ich das Formular vollständig los (damit nichts falsches angezeigt wird) und erhalte alle Ressourcen zurück?
Oder zeigt die Referenz auf eigentlich freigegebenen Speicher?

Gruß
Spider
 
Zurück