2 Fenster offen, aber nur eins schließen, wie

Polli

Mitglied
Hallo,
ich wollte mich mal informieren wie ich es hin bekomme, nur ein Fenster zu schließen und nicht beide.

Ich habe zwei Frames (in zwei unterschiedlichen Klassen) und in dem einem Frame ist ein Dialog. Auf dem Dialog habe ich einen Button gemacht. Wenn ich auf den klicke soll sich nur das Frame mit dem Dialog schließen und nicht beide Fenster/Frames. Es soll also nicht die komplette Anwendung geschlossen werden.

Kann mir da jemand helfen?

Um die ganze Anwendung zu schließen schreibt man ja:
PHP:
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

für was ist denn die Zeile?:
PHP:
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Ich dachte damit könnte es klappen funktioniert aber nicht.

Könntet ihr mir einen Tipp geben?

Danke für lesen ;) und hoffentlich auch für helfen :rolleyes::p:p
 
Mach doch einfach beim Button-Click:
Java:
this.dispose();
//bzw
<deinDialog>.dispose();
 
Dispose on Close solltest du aber auch drinlassen sofern dein Dialog oben links den Standard-Schließen Button (X) aufweist. Dafür gilt dann diese CloseOperation.
 
Mhh... aber irgendwie passiert dort nichts wenn ich
PHP:
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setze... Da kann ich auf das Kreuzlein drücken wie ich will, das Fenster will sich nicht schließen...

kann mir jemand sagen was ich da ändern kann?
PHP:
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
kann ich nicht nehmen weil ja dann beide Fenster zu sind...:rolleyes::rolleyes:
 
Und wenn du beides nicht machst? Verhällt es sich dann nicht so, wie du willst?
Dann müsste doch bei einem Klick auf das x des Dialoges nur der Dialog geschlossen werden.
 
Schließt sich aber nicht...
Ich dachte eigentlich ja auch das es so klappt, aber es is nicht so....
 
Du hast aber nicht irgenwo diese Zeile in deinem Dialog, oder?
Java:
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
 
Dann poste mal bitte deinen Quelltext, denn normal müsste es funktionieren.

MFG

Sascha
 
Hier ist mein Quellcode...

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

public class Fehler_FensterG 
{
	JFrame f = new JFrame("Pfad fehlt");
	JButton b = new JButton("ok");
	JLabel la = new JLabel("Bitte geben Sie den Pfad an!", JLabel.CENTER);
    final Icon smallIcon = new ImageIcon( JMenu.class.getResource("/images/icon_warning.gif") );
	JLabel sl = new JLabel(smallIcon);
	JLabel o = new JLabel();
	Dialog d = new Dialog(f, "Fehler");
	Panel  p = new Panel ();
	Panel  a = new Panel ();
	Panel  c = new Panel ();

	ActionListener al = new ActionListener()
	{
		public void actionPerformed(ActionEvent e)
		{
			f.dispose();
		}
	};


	public Fehler_FensterG()
	{
		d.setSize(350,130);
		d.setVisible(true);
		f.setResizable(false);
		p.setSize(150, 150);
		b.addActionListener(al);
		p.add(sl, BorderLayout.WEST);
		p.add(la, BorderLayout.CENTER);
		a.add(b, BorderLayout.SOUTH);
		d.setLayout(new GridLayout(2,1));
		d.add(p);
		d.add(a);
		f.toFront();
	}
	public static void main(String[] args) 
	{
		Fehler_FensterA ff = new Fehler_FensterA();
	}
	
	
}

Danke :)
 
Zurück