Beim Schließen eines fensters, schließen sich alle

Status
Nicht offen für weitere Antworten.

Cathamenia

Mitglied
Hallo,

Ich habe ein ziemlich simples Programm. Dieses öffnet beim starten n Fenster. Nun möchte ich einzelne Fenster schließen, ohne dass sich alle schließen.

Hier ein paar code schnipsel zu meinem Programm:

Klasse für die einzelnen Fenster:
Code:
public class GuiCounter extends JFrame implements Runnable{
	private int counter = 0;
	private int msec = 0;
	private String name = "";
	
	private JLabel countLabel;
	
	public GuiCounter(int msec, String name, int location){
		super(name);
		this.msec = msec;
		this.name = name;
		...

und der Aufruf der Fenster, jedes ist ein eigener Thread:

Code:
public class GuiZaehler{
	private static void startCounter(int msec, String name, int location){
		GuiCounter c = new GuiCounter(msec, name, location);
		Thread counterThread = new Thread(c);
		counterThread.start();
	}
	
	public static void main(String[] args) {
		int number = Integer.valueOf(args[0]);
		String name = null;
		int msec = 0;
		for (int i = 1; i <= number; i++){
			name = "Counter " + String.valueOf(i);
			msec = Integer.valueOf(args[i]);
			startCounter(msec, name, i * 60);
		}
	}
}


Gruß Cathamenia
 
S

SlaterB

Gast
wann wo wie wird denn in deinem Programm ein Fenster geschlossen?

und weißt du, warum dann alle Fenster geschlossen werden?
hast du irgendwas Richtung WindowClosingListener/setDefaultCloseOperation?

normalerweise bleiben die Fenster eher offen:
Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        JFrame a = new JFrame();
        a.setSize(400,300);
        a.setVisible(true);
        
        JFrame b = new JFrame();
        b.setSize(200,150);
        b.setVisible(true);
    }
}
a und b kann man einzeln zu-klicken, Programm läuft selbst dann noch unsichtbar weiter
 

Cathamenia

Mitglied
ok, hier nochmal der Gesamte Konstruktor:

Code:
	public GuiCounter(int msec, String name, int location){
		super(name);
		this.msec = msec;
		this.name = name;
		
		this.setSize(220, 60);
		this.setLocation(location, location);
		this.setLayout(new BorderLayout());
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		countLabel = new JLabel("");
		this.getContentPane().add(countLabel, BorderLayout.CENTER);
		this.setVisible(true);
		
	}

direkt ein Frame öffnen, so wie du es gemacht hast, kann ich nicht, da ich Instanzen meiner gesamten Klasse benötige, welche von JFrame geerbt ist, wie man oben sieht
 
S

SlaterB

Gast
du hast also
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
was bedeutet 'bei x gesamtes Programm beenden'

lasse das also weg bzw. rufe explizit den Default-Wert
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
auf

dann wird aber nicht automatisch der zugehörige Thread beendet,
und das Programm läuft auch dann noch weiter wenn alle Fenster zu sind
(mindestens der AWT-Event-Thread läuft weiter)
 

Cathamenia

Mitglied
Genau dort ist leider mein Problem, ich hatte es auch schon weggelassen, und dann schlossen sich die fenster auch einzeln. Aber die Threads laufen weiter und wenn ich das letzte Fenster schließe, dann ist das Programm ja immer noch nicht beendet, sondern läuft im Hintergrund "unendlich" lange weiter...
 
S

SlaterB

Gast
schön, das wußtest du alles schon, wolltest es aber nicht erwähnen ;)



dann also ein WindowListener,
dann kannst du beim Schließen noch beliebige Aktionen anstoßen:

Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        JFrame a = new JFrame();
        a.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        a.addWindowListener(new WindowListener()
            {
                public void windowActivated(WindowEvent e)
                {
                }

                public void windowClosed(WindowEvent e)
                {
                    System.out.println("nu ist disposed");
                }

                public void windowClosing(WindowEvent e)
                {
                    System.out.println("gleich disposed");
                }

                public void windowDeactivated(WindowEvent e)
                {
                }

                public void windowDeiconified(WindowEvent e)
                {
                }

                public void windowIconified(WindowEvent e)
                {
                }

                public void windowOpened(WindowEvent e)
                {
                }
            });
        a.setSize(400, 300);
        a.setVisible(true);

    }
}
der Standard ist übrigends nicht DISPOSE sondern wohl DO_NOTHINT, also
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
aufrufen wenn Dispose gewünscht ist

-------

das Beeenden des eigenen Thread dürfte damit klar sein, falls dir das allgemein bekannt ist
(wenn nicht, dann hat das nix mit Fenstern zu tun!)

wenn es um das Ende des Gesamtprogramms geht, dann kann ein Fenster alleine erstmal wenig tun,
idealerweise hast du ein einzelnes Kontroll-Objekt, dass alle Threads/ Fenster kennen,
dort kann sich jedes Fenster abmelden, wenn es geschlossen wird,
das Kontroll-Objekt merkt dann, wenn gar keine Fenster mehr da sind und beendet das Programm
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2
D WindowEvent beim Schließen eines JFrame AWT, Swing, JavaFX & SWT 20
S Rückgabe beim Schließen eines Dialogs AWT, Swing, JavaFX & SWT 5
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
D JavaFX Beim Schließen (Rotes X) Code ausführen AWT, Swing, JavaFX & SWT 1
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
L Event Handling windowAdapter - NullPointerException beim Schließen AWT, Swing, JavaFX & SWT 5
L SWT Eingabefelder beim Schließen des Forms auslesen AWT, Swing, JavaFX & SWT 3
K beim Schließen des JFrames, Methode aufrufen AWT, Swing, JavaFX & SWT 3
F Swing JFrame Methode beim Schließen aufrufen AWT, Swing, JavaFX & SWT 5
S methode aufrufen beim Schließen von GUI AWT, Swing, JavaFX & SWT 7
R Beenden Dialog beim Schließen AWT, Swing, JavaFX & SWT 2
E Beim Schließen des Fensters eigene Funktion aufrufen AWT, Swing, JavaFX & SWT 8
Juelin Problem beim Laden Controller AWT, Swing, JavaFX & SWT 2
O Swing Icon verschwindet beim Verschieben eines JLabels AWT, Swing, JavaFX & SWT 8
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
B Output GUI funktioniert nur beim ersten Mal richtig. AWT, Swing, JavaFX & SWT 4
A JavaFX exportierte Jar ohne beim starten die Libs hinzufügen? AWT, Swing, JavaFX & SWT 2
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
G Gui updated beim zweiten Aufruf nicht mehr AWT, Swing, JavaFX & SWT 15
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
R NullPointerException beim Start des Fensters AWT, Swing, JavaFX & SWT 1
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J Kann mir jemand beim MediaPlayer helfen ? AWT, Swing, JavaFX & SWT 2
S JavaFx Zufallsfarbe beim Button-Klick AWT, Swing, JavaFX & SWT 22
L Swing JDialog ton beim klicken ausstellen AWT, Swing, JavaFX & SWT 1
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
R 2D-Grafik Massive Frame Drops beim Benutzen von AffineTransformOp AWT, Swing, JavaFX & SWT 2
ruutaiokwu Swing windowStateChanged macht exakt das Gegenteil beim Verändern der Fenstergrösse AWT, Swing, JavaFX & SWT 3
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
D JInternalFrame wechselt Position beim ersten Click AWT, Swing, JavaFX & SWT 0
steven789hjk543 Swing Verstehe etwas beim GUI nicht AWT, Swing, JavaFX & SWT 3
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
J Hilfe beim tablevies AWT, Swing, JavaFX & SWT 2
L JavaFX Fehler beim setzen von Farben AWT, Swing, JavaFX & SWT 16
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
L Java FX Exception beim start AWT, Swing, JavaFX & SWT 2
L JSplitPane Divider Location beim Maximieren AWT, Swing, JavaFX & SWT 6
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
J ObservableList wirft exception beim zweiten füllen. AWT, Swing, JavaFX & SWT 4
emma_louisa JavaFX Werte beim Aufrufen des Fensters übernehmen (SceneBuilder) AWT, Swing, JavaFX & SWT 3
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
L JavaFX LoadException beim Laden von JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
N Eclipse - GUI - MacBook - Buttonsichtbarkeit beim Anlegen/Erstellen AWT, Swing, JavaFX & SWT 14
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
Tommy135 JavaFX JavaFX Fehler beim Scenewechsel AWT, Swing, JavaFX & SWT 23
E Swing Miserable Performance beim Ändern der Hintergrundfarbe von JLabels AWT, Swing, JavaFX & SWT 3
L Charset beim Drucken falsch AWT, Swing, JavaFX & SWT 2
MaxG. Swing Farbe von Button beim drücken ändern AWT, Swing, JavaFX & SWT 4
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
R Swing Programm läuft nur beim Debuggen korrekt ab AWT, Swing, JavaFX & SWT 4
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
W Kodierung (CharSet) beim Schreiben ändern AWT, Swing, JavaFX & SWT 1
D Swing JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
Thallius Swing "..." beim JLabel verhindern? AWT, Swing, JavaFX & SWT 3
P Scrollbalken verschwinden beim Zoomen AWT, Swing, JavaFX & SWT 4
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
D JavaFX (WebStart) Graues Fenster beim Start AWT, Swing, JavaFX & SWT 4
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
O Swing JList beim Klicken in der GUI erstellen AWT, Swing, JavaFX & SWT 6
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
S NullPointer Exception beim Laden von Bildern AWT, Swing, JavaFX & SWT 11
I JavaFX Speichern der eingefügten Einträge beim Neustart des Programms AWT, Swing, JavaFX & SWT 2
J JavaFx/SceneBuilder/Felder beim verlassen prüfen AWT, Swing, JavaFX & SWT 1
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
C Gesucht: Hilfe beim programmieren. AWT, Swing, JavaFX & SWT 1
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
C Hilfe beim programmieren mit studiumgebundenes Projekt AWT, Swing, JavaFX & SWT 1
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
H JavaFX Freezes beim Zeichnen mit Canvas AWT, Swing, JavaFX & SWT 3
D JavaFX build.fxbuild error beim Erstellen einer exe AWT, Swing, JavaFX & SWT 2
M Swing Vorgehen beim Aufruf der Klassen/Methoden AWT, Swing, JavaFX & SWT 7
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben