DefaultCloseOperation funktioniert nicht

JMarkus

Mitglied
Hallo zusammen,
ich habe folgendes Problem und hoffe ihr könnt mir weiterhelfen.
Und zwar habe ich ein Fenster (JFrame) mit der DefaultCloseOperation "Dispose". Dieses Fenster hat eine Menüleiste über die ich einen modalen Dialog (JDialog) aufrufe. Dieser Dialog hat auf die DefaultCloseOperation "Dispose".

Das Problem ist nun, dass die Anwendung nicht beendet wird wenn der Dialog einmal geöffnet war. D.h. wenn ich nur das Fenster starte und dann beendet die Anwendung beim Schließen des Fensters. Öffne ich aber auch den Dialog, schließe ihn und schließe dann das Fenster, läuft die Anwendung trotzdem weiter (zu sehen in Netbeans). Woran kann das liegen?

Danke für eure Unterstützung.
 

JMarkus

Mitglied
Vielen Dank für die schnelle Antwort. An EXIT_ON_CLOSE hatte ich auch gedacht aber davon wird im Allgmeinen abgeraten weil hierdurch ein System.exit(0) ausgelöst und die Anwendung "hart" beendet wird.

Deshalb sollte man lieber DISPOSE_ON_CLOSE einsetzen, was ja theoretisch auch funktionieren sollte. DISPOSE besagt ja, das die Anwendung beendet wird, wenn kein weiteres Fenster mehr offen ist und dies ist ja eigentlich der Fall.
 

javampir

Bekanntes Mitglied
das hab ich ehrlich gesagt noch nie gehört. wenn du etwas hast, das vorer bereinigt werden muss, kannst du ja nen windowlistener hernehmen
 

JMarkus

Mitglied
Gut, darüber gitb es wahrscheinlich verschiedene Meinungen.
Fakt ist doch aber, dass DISPOSE_ON_CLOSE die Anwendung beendet, wenn kein weiteres Fenster mehr offen ist. Da der Dialog ja vorher geschlossen wurde, müsste doch mit dem Schließen des Hauptfensters die Anwendung beendet werden. Warum klappt das nicht??
 

X5-599

Top Contributor
Ich hab mal ein Beispiel gemacht und kann daran das vor dir beschriebene Verhalten nicht nachvollziehen. Alles beendet sich wie erwartet.

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

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingUtilities;


public class Forum
{
    public static void main(String[] args)
    {
        /*
         * Test Frame
         */
        SwingUtilities.invokeLater(new Runnable() {
           
            @Override
            public void run()
            {
                final JFrame frame = new JFrame("TestFrame");
                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
               
                JMenuBar bar = new JMenuBar();
                JMenu datei = new JMenu("Datei");
                JMenuItem showDialog = new JMenuItem("Show Dialog");
                showDialog.addActionListener(new ActionListener() {
                   
                    @Override
                    public void actionPerformed(ActionEvent e)
                    {
                        JDialog dialog = new JDialog(frame, "Dialog");
                        dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
                        dialog.setModal(true);
                        dialog.setSize(200, 200);
                        dialog.setLocationRelativeTo(dialog.getParent());
                        dialog.setVisible(true);
                    }
                });
               
                datei.add(showDialog);
                bar.add(datei);
                frame.setJMenuBar(bar);
               
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
           
        });
       
    }
   
}
 
Zuletzt bearbeitet von einem Moderator:

X5-599

Top Contributor
Interessant. Ich war mir nämlich nicht sicher, ob es an der Parent-Übergabe liegen könnte und habe einfach mal beides probiert. Auch ohne Angabe eines Parent für den Dialog funktioniert es. Also es wird immer die Anwendung beendet...
Ich meine:
Code:
... = new JDialog();
...
dialog.setLocationReleativeTo(null);
 

JMarkus

Mitglied
... = new JDialog();
in dem Fall rufst du ja den Default-Konstruktor auf. Hierbei wird der Dialog wahrscheinlich automatisch als child des Frames gesetzt.
Ich hatte hier: new JDialog(new JFrame, true) zu stehen. Dieser neue Frame war natürlich nicht zu sehen, weil er keinen Inhalt hatte. Deshalb beendete das Programm nicht, weil dieser Frame noch offen war (wenn auch nicht sichtbar).
 

X5-599

Top Contributor
Ah ja, das macht Sinn, dass der unsichtbare Frame das Programm offen lässt.

Nur der Vollständigkeit halber:
Wenn du new JDialog() ( ohne Parameter ) aufrufst hat der Dialog nicht automatisch den Frame als Parent. Sein Parent ist dann einfach nur "null".
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin if Abfrage funktioniert nicht richtig AWT, Swing, JavaFX & SWT 10
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
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
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
M Scrollbar funktioniert nicht AWT, Swing, JavaFX & SWT 10
D Repaint Funktioniert nicht AWT, Swing, JavaFX & SWT 2
W JEditorPane textausrichtung nach settext funktioniert nicht mehr AWT, Swing, JavaFX & SWT 11
H Swing Anpassen der Textgröße im JLabel funktioniert nur bedingt AWT, Swing, JavaFX & SWT 7
sserio JFrame setIconImmage() funktioniert nicht AWT, Swing, JavaFX & SWT 3
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
B Output GUI funktioniert nur beim ersten Mal richtig. AWT, Swing, JavaFX & SWT 4
sserio Wie funktioniert ein Controller bei JavaFx? AWT, Swing, JavaFX & SWT 1
U Wie funktioniert das rotieren unter 2dGraphics, also wie stelle ich z. B. 90° ein? AWT, Swing, JavaFX & SWT 1
U Wie funktioniert Polygon? AWT, Swing, JavaFX & SWT 1
U Wie genau funktioniert 2dgraphics, in diesem Bezug? AWT, Swing, JavaFX & SWT 4
S ChoiceBox aus ArrayList per setValue() mit Wert belegen funktioniert nicht. AWT, Swing, JavaFX & SWT 0
H KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
H BufferedImage zurücksetzen funktioniert nicht AWT, Swing, JavaFX & SWT 12
H RPG Programmieren, label.setLocation funktioniert nicht AWT, Swing, JavaFX & SWT 7
EinNickname9 Einfacher parser funktioniert nicht AWT, Swing, JavaFX & SWT 2
F Swing Adapt Row Height funktioniert nicht richtig :( AWT, Swing, JavaFX & SWT 7
P Swing jxmapviewer hinzufügen/nutzen funktioniert nicht AWT, Swing, JavaFX & SWT 7
CptK Wie funktioniert contains() für Path2D.Double AWT, Swing, JavaFX & SWT 10
J Anbindung Textfeldklasse an Table funktioniert nicht AWT, Swing, JavaFX & SWT 3
R Actionlistener funktioniert nicht AWT, Swing, JavaFX & SWT 4
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
VPChief Swing Eclipse: Nach Exportieren, Button funktioniert nicht mehr AWT, Swing, JavaFX & SWT 26
H Bewegung funktioniert nicht AWT, Swing, JavaFX & SWT 3
N Pixelfarbe abgleichen funktioniert nicht AWT, Swing, JavaFX & SWT 5
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
steven789hjk543 Swing Weiß jemand, warum dieses Programm nicht funktioniert? AWT, Swing, JavaFX & SWT 7
M Swing setMaximumSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
K JavaFX funktioniert nicht AWT, Swing, JavaFX & SWT 2
B AWT actionPerformed Method funktioniert nicht AWT, Swing, JavaFX & SWT 12
L JavaFX Drag and Drop funktioniert nicht AWT, Swing, JavaFX & SWT 3
M Swing Code funktioniert auf Windows aber nicht Linux... AWT, Swing, JavaFX & SWT 3
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
J JavaFX addListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
P CardLayout funktioniert fehlerhaft AWT, Swing, JavaFX & SWT 13
L WrapLayout funktioniert nicht AWT, Swing, JavaFX & SWT 1
kodela Accalerator für einige Menüoptionen funktioniert nicht mehr AWT, Swing, JavaFX & SWT 3
S JavaFX mit javac compilieren funktioniert nicht AWT, Swing, JavaFX & SWT 2
K Swing Entfernen von Panel funktioniert nicht AWT, Swing, JavaFX & SWT 5
J AWT System Farben / java.awt.SystemColor funktioniert nicht AWT, Swing, JavaFX & SWT 4
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
it_is_all ActionListener umlenken/ updaten mit AddActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 3
K javafx app > "run in browser" funktioniert nicht AWT, Swing, JavaFX & SWT 3
N JavaFX GridPane Halignment funktioniert nicht AWT, Swing, JavaFX & SWT 1
it_is_all JLabel.setIcon - funktioniert nicht mehr AWT, Swing, JavaFX & SWT 2
R Ausgabe über JOptionPane.showMessageDialog funktioniert nicht AWT, Swing, JavaFX & SWT 2
L 2D-Grafik Frage zu Ellipse2D.Double, Abfrage, ob Punkt enthalten ist funktioniert nicht AWT, Swing, JavaFX & SWT 3
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
F "ActionListener" funktioniert nicht AWT, Swing, JavaFX & SWT 4
Z BoxLayout funktioniert nicht und Buttongröße AWT, Swing, JavaFX & SWT 18
C Java Hintergrund funktioniert nicht AWT, Swing, JavaFX & SWT 9
J Swing Wie funktioniert dieser ChangePropertyListener??? AWT, Swing, JavaFX & SWT 0
GreenTeaYT Button funktioniert nicht für Ein-und Auszahlungen? AWT, Swing, JavaFX & SWT 8
C Keylistener funktioniert nicht AWT, Swing, JavaFX & SWT 1
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
M UIManager funktioniert nicht mit Farben AWT, Swing, JavaFX & SWT 9
M Swing UIManager funktioniert nicht mit Farben AWT, Swing, JavaFX & SWT 0
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
S JavaFX wie funktioniert CSS und javaFX AWT, Swing, JavaFX & SWT 19
S KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 2
J JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 5
M JavaFX Eventhandler Funktioniert nicht AWT, Swing, JavaFX & SWT 3
Sogomn JavaFX Injektion funktioniert nicht AWT, Swing, JavaFX & SWT 4
Blender3D Swing KeyBoardListener funktioniert nicht unter UBUNTU AWT, Swing, JavaFX & SWT 7
J JavaFX Button funktioniert(nicht) AWT, Swing, JavaFX & SWT 3
F JavaFX ObservableList -- warum funktioniert das so.... AWT, Swing, JavaFX & SWT 3
R Swing Bewegung eines Graphics Objektes innerhalb eines JPanels funktioniert nicht richtig AWT, Swing, JavaFX & SWT 2
Paul15 Button funktioniert nur einmal AWT, Swing, JavaFX & SWT 9
D Swing Warum erhalte ich keine Ausgabe? Funktioniert der equals-vergleich in actionPeformed nicht richtig? AWT, Swing, JavaFX & SWT 3
H UpdatePolicy wird nicht richtig gesetzt / funktioniert nicht AWT, Swing, JavaFX & SWT 5
W Paint-Methode in anderer Klasse funktioniert nicht AWT, Swing, JavaFX & SWT 7
N KeyListener funktioniert nicht richitg AWT, Swing, JavaFX & SWT 4
L Event Handling wie funktioniert .getComponent? AWT, Swing, JavaFX & SWT 1
B JavaFX Scene Builder: resize funktioniert (meist) nicht AWT, Swing, JavaFX & SWT 6
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
D Passwort [Aber mit 3 Versuchen] Funktioniert nicht wie erwartet AWT, Swing, JavaFX & SWT 4
C Applet Applet funktioniert in Eclipse aber nicht in Browser AWT, Swing, JavaFX & SWT 1
J Zellen in JavaFx einfärben funktioniert nicht AWT, Swing, JavaFX & SWT 1
S Swing Warum funktioniert der automatische Zeilenumbruch mit arabischen Zeichen beim JTextPane nicht AWT, Swing, JavaFX & SWT 3
Joew0815 JDialog repaint() funktioniert nicht wie gewünscht. AWT, Swing, JavaFX & SWT 2
C KeyPressed funktioniert auf iOS nicht richtig? AWT, Swing, JavaFX & SWT 4
D Event Handling MouseListener funktioniert seit Java 8 nicht mehr AWT, Swing, JavaFX & SWT 13
M LayoutManager GridLayout funktioniert nicht AWT, Swing, JavaFX & SWT 0
I Objekte aus contentPane löschen funktioniert nicht AWT, Swing, JavaFX & SWT 3
F JavaFX Antialiasing funktioniert nicht? AWT, Swing, JavaFX & SWT 8
F CardLayout.show() funktioniert teilweise nicht AWT, Swing, JavaFX & SWT 5
M Listener funktioniert nicht AWT, Swing, JavaFX & SWT 7
M "Update" der JTable funktioniert nicht AWT, Swing, JavaFX & SWT 2
T JAXB funktioniert ohne IDE nicht verlässlich AWT, Swing, JavaFX & SWT 12
C Repaint() funktioniert nicht in TabbedPanel AWT, Swing, JavaFX & SWT 5
T LayoutManager GridLayout panel.setSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
R JavaFX Stage.close() funktioniert nicht im jar-File AWT, Swing, JavaFX & SWT 2
S Swing JLayeredPane Anordnung funktioniert nicht AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben