Ich habe ein kleines Problem mit einem JDialog, es hinterlässt einen leeren Rahmen nach dem Schließen trotz allem, was ich tue. Ich habe versucht, ziemlich lang, eine Lösung zu finden, die leider weder dieseSchließen von JDialog hinterlässt einen leeren Rahmen
daughterWindow.dispatchEvent(new WindowEvent(validation, WindowEvent.WINDOW_CLOSING));
noch
daughterWindow.setVisible(false);
daughterWindow.dispose();
noch dieses half mir
WindowAdapter adapter = (WindowAdapter)jdialog.getWindowListeners()[0];
adapter.windowClosing(new WindowEvent((Window)jdialog, WindowEvent.WINDOW_CLOSING));
höchstwahrscheinlich aufgrund einer Classcast der letzte wirft.
Exception in thread "AWT-Eventqueue-0" java.lang.ClassCastException: javax.swing.SwingUtilities $ SharedOwnerFrame nicht java.awt.event.WindowAdapter gegossen werden kann
Hier ist mein Code, vielleicht kann mir jemand einen Hinweis geben.
JDialog daughterWindow = new JDialog();
daughterWindow.setModal(true);
daughterWindow.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
daughterWindow.getContentPane().setLayout(new BoxLayout(daughterWindow.getContentPane(), BoxLayout.Y_AXIS));
UIManager.put("FileChooser.readOnly", Boolean.TRUE);
JFileChooser open = new JFileChooser();
File rsc = new File(System.getProperty("user.dir") + "\\rsc\\");
if(!rsc.exists()) rsc.mkdir();
open.setCurrentDirectory(new File(System.getProperty("user.dir") + "\\rsc\\"));
open.setDialogTitle("Ordner mit der Datenbank auswählen");
open.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if(open.showOpenDialog(daughterWindow) == JFileChooser.APPROVE_OPTION){
UIManager.put("FileChooser.readOnly", Boolean.FALSE);
setValidateAccessWindowLayout(open.getSelectedFile());
daughterWindow.dispatchEvent(new WindowEvent(daughterWindow, WindowEvent.WINDOW_CLOSING));
} else{
UIManager.put("FileChooser.readOnly", Boolean.FALSE);
daughterWindow.dispatchEvent(new WindowEvent(daughterWindow, WindowEvent.WINDOW_CLOSING));
}
daughterWindow.setResizable(false);
daughterWindow.pack();
daughterWindow.setVisible(true);
And a screen of the problem
Vielen Dank im Voraus!
UPDATE: überprüfte die dritte Option ohne scheinbar unnötige Besetzung, aber das half auch nicht.
WindowListener adapter = daughterWindow.getWindowListeners()[0];
adapter.windowClosing(new WindowEvent(daughterWindow, WindowEvent.WINDOW_CLOSING));
Für eine bessere Hilfe früher, Posten [MCVE] oder [Kurz, Self Contained, Korrekt Beispiel ] (http://www.sscce.org/). –