erneutes Öffnen jInternalFrame: illegal component position

Status
Nicht offen für weitere Antworten.

alex999

Mitglied
Hallo,

ich erzeuge nacheinander zwei jInternalFrame, verpasse jedem einen Listener und füge sie einem jDesktopPane hinzu. Soweit sogut.
Später schließe ich die beiden Frames:

Code:
[...]
TaskList tl = TaskList.getInstance();  //Singleton
				tl.setDefaultCloseOperation(JInternalFrame.DO_NOTHING_ON_CLOSE);
				tl.addInternalFrameListener(new InternalFrameAdapter() {

					public void internalFrameClosing(InternalFrameEvent e) {
						
							//Register.unregisterComponent("tasklist");
							e.getInternalFrame().dispose();
					}
				});
				tl.setVisible(true);
				mainFrame.getDesktopPane().add(tl);



Beim erneuten Öffnen eines der beiden jInternalFrames bekomme ich eine Exception:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: illegal component position
	at java.awt.Container.addImpl(Unknown Source)
	at javax.swing.JLayeredPane.addImpl(Unknown Source)
	at java.awt.Container.add(Unknown Source)
	at gui.TreeEventManager.eventFired(TreeEventManager.java:89)
	at gui.MainForm$2.valueChanged(MainForm.java:70)
	at javax.swing.JTree.fireValueChanged(Unknown Source)
	at javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source)
	at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source)
	at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source)
	at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source)
	at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source)
	at javax.swing.JTree.setSelectionPath(Unknown Source)
	at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source)
	at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelectionImpl(Unknown Source)
	at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source)
	at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source)
	at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Was fehlt und bei wem? Ein revalidate/repaint/invalidate();validate()/hide();show() ...? Auf die Frames? Auf das DesktopPane? Was mach ich falsch? ahhh

Schöne Grüße,
Alex
 
S

SlaterB

Gast
ein disposed JInternalFrame ist etwa das, was von einem Prozellanladen übrigbleibt, wenn du den Elefanten reingeschickt hast,
das hat Grafik-Ressourcen, Event-Handler usw. verloren, ist nicht mehr zu gebrauchen,

wenn du das JInternalFrame eine zeitlang ausschalten und später wieder anzeigen willst,
dann verwende setVisible(true/false), entferne es aus dem jDesktopPane oder ähnliches
 
G

Guest

Gast
Danke für die anschauliche Erklärung :)

Ich hätte halt gern den Speicher freigegeben (macht man doch so, oder?). Später benötige ich dann auch noch einige Panels, da möchte ich eigentlich ähnliches machen: Öffnen, einige Eingaben entgegennehmen, als DB-Datensatz wegschreiben, Panel schließen.
Ist das normal, dass GUI Container nicht zerstört und bei Bedarf neu aufgebaut werden, sondern dass die nur unsichtbar gemacht werden?

Außerdem: wenn ich einen JInterFrame disposed habe, dann erzeuge ich ja eigentlich ein neues Objekt wenn ich diesem Frame wieder brauche:
Code:
TaskList tl = TaskList.getInstance();
Warum spielt dann der alte, bereits disposed'e Frame noch eine Rolle?
 
S

SlaterB

Gast
bei neuen Objekten sollten die alten egal sein,
ich kann aus deinem Code/ Erklärungen nichts weiter erkennen,
poste evtl. ein vollständiges kurzes Beispielprogramm
 

alex999

Mitglied
ok ich habe die Lösung: Ich muss natürlich die INSTANCE Variable, welche durch das Singletonpattern des InternalFrames gesetzt wird, ebenfalls auf null setzen. Ansonsten bekomme ich einen Verweis auf das vorher diposed'e InternalFrame zurück.
So wird dann auch ein richtiges, neues Objekt erzeugt.
Jetzt klappt es wie ich ursprünglich wollte.

Gut das wir drüber geredet haben, danke :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Erneutes Malheur mit Focusermittlung AWT, Swing, JavaFX & SWT 4
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
P JApplet Browser Tab Öffnen AWT, Swing, JavaFX & SWT 5
B Nach dem Öffnen des Dialogs eine Aktion ausführen. AWT, Swing, JavaFX & SWT 6
P Öffnen, Speichern von Dat. über DialogBoxen AWT, Swing, JavaFX & SWT 10
H Öffnen einer Sourcedatei? AWT, Swing, JavaFX & SWT 11
X Öffnen Schließen Fenster AWT, Swing, JavaFX & SWT 4
T JFileChooser - "Öffnen-Button" aktivieren/deaktivieren möglich??? AWT, Swing, JavaFX & SWT 2
C Swing Problem beim 2. Öffnen eines JFrames AWT, Swing, JavaFX & SWT 9
S AWT Speichern von Listkomponenten und Öffnen derer AWT, Swing, JavaFX & SWT 10
L Filechooser File Öffnen AWT, Swing, JavaFX & SWT 4
Q Neuer Thread zum Öffnen AWT, Swing, JavaFX & SWT 2
G JComboBox soll beim Öffnen eine andere JComboBox öffnen AWT, Swing, JavaFX & SWT 3
I Öffnen von anderen Programmen bei Betätigen eines Buttons AWT, Swing, JavaFX & SWT 19
T Öffnen von SWT-Dialogboxen durch HTML-Link in HTML-Code AWT, Swing, JavaFX & SWT 4
A KeyListener funktioniert nicht beim Öffnen von neuem Frame. AWT, Swing, JavaFX & SWT 2
D JTable nach Öffnen-Dialog umbaun AWT, Swing, JavaFX & SWT 5
M Image-Preview im Öffnen-Dialog: Performanceprobleme AWT, Swing, JavaFX & SWT 2
X Java Frame Öffnen AWT, Swing, JavaFX & SWT 4
S Öffnen eines JDialog über JMenuItem / Fenster zu viel. AWT, Swing, JavaFX & SWT 2
J Öffnen und Schließen eines Fensters (mit Synchronisierung) AWT, Swing, JavaFX & SWT 3
B Probleme mit Öffnen einer GUI Oberfläche AWT, Swing, JavaFX & SWT 2
F Fensternamen nach Öffnen änderbar? AWT, Swing, JavaFX & SWT 4
P JTree Knoten Öffnen - PER Programm AWT, Swing, JavaFX & SWT 5
D JInternalFrame beim Öffnen nicht aktiv! AWT, Swing, JavaFX & SWT 5
M LookAndFeel? Erst beim 2.Mal Öffnen eines Menüs? AWT, Swing, JavaFX & SWT 3
J Öffnen-Dialog AWT, Swing, JavaFX & SWT 4
G Aktion beim Öffnen und Schliessen eines JInternalFrames AWT, Swing, JavaFX & SWT 4
T Das Windows Fenster "Öffnen" mit Java darstellen AWT, Swing, JavaFX & SWT 9
S Öffnen Dialog mit Swing AWT, Swing, JavaFX & SWT 2
D JInternalFrame wechselt Position beim ersten Click AWT, Swing, JavaFX & SWT 0
J Mehrere JInternalFrame; GetValues AWT, Swing, JavaFX & SWT 1
L LookAndFeel JInternalFrame aussehen isSelected() true vs false AWT, Swing, JavaFX & SWT 0
X JInternalFrame vor Java2D-Zeichnung langsam bzw. Gui friert ein AWT, Swing, JavaFX & SWT 1
G Swing JInternalFrame AWT, Swing, JavaFX & SWT 0
R Custome TitlePane JInternalFrame - ControlButton AWT, Swing, JavaFX & SWT 2
B JInternalFrame Focus setzten geht nicht AWT, Swing, JavaFX & SWT 2
J Swing JInternalFrame modal setzen? AWT, Swing, JavaFX & SWT 13
J Swing JInternalFrame schließen ändern? AWT, Swing, JavaFX & SWT 7
J Swing Fokus JInternalFrame fehlerhaft AWT, Swing, JavaFX & SWT 4
G JInternalframe geöffnet oder nicht? AWT, Swing, JavaFX & SWT 4
G Swing und MDI mit JInternalFrame AWT, Swing, JavaFX & SWT 11
H Swing JInternalFrame, JDesktopPane und ein BorderLayout AWT, Swing, JavaFX & SWT 2
R Problem beim Anzeigen von Bildern auf JInternalFrame AWT, Swing, JavaFX & SWT 6
eskimo328 Java6 Methode in Java5 verwenden (memory leak JInternalFrame) AWT, Swing, JavaFX & SWT 4
A Swing getInsets() JInternalFrame AWT, Swing, JavaFX & SWT 2
R Swing JInternalFrame Opaque AWT, Swing, JavaFX & SWT 6
M JInternalFrame - Handhabung? AWT, Swing, JavaFX & SWT 5
algorismi JInternalframe Icon AWT, Swing, JavaFX & SWT 14
S JInternalFrame oder JTextArea neu laden AWT, Swing, JavaFX & SWT 2
V JInternalFrame wird überzeichnet AWT, Swing, JavaFX & SWT 8
T Neuen JInternalFrame von JLabel "herunterziehen" AWT, Swing, JavaFX & SWT 6
T JInternalframe auf DropTarget droppen? AWT, Swing, JavaFX & SWT 7
O Swing JInternalFrame komplett neu laden AWT, Swing, JavaFX & SWT 3
B JInternalFrame - Maximieren AWT, Swing, JavaFX & SWT 11
X Grafikfehler mit JInternalFrame (Überlagerungen) AWT, Swing, JavaFX & SWT 2
B Swing Image als Hintergrund im JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
J Swing JInternalFrame - mit DesktopManager maximieren AWT, Swing, JavaFX & SWT 3
J Swing JInternalFrame - Bug: getDesktopManager.deiconify(...) AWT, Swing, JavaFX & SWT 2
W JInternalFrame + JList Problem AWT, Swing, JavaFX & SWT 5
H Swing JInternalFrame aus JFrame ziehen AWT, Swing, JavaFX & SWT 6
N JInternalFrame minimieren und schließen AWT, Swing, JavaFX & SWT 2
T JFrame als JInternalFrame darstellen AWT, Swing, JavaFX & SWT 2
K Swing JInternalFrame und LayoutManager AWT, Swing, JavaFX & SWT 6
C Zeichnen über JInternalFrame der ICEpdf-Dokument anzeigt AWT, Swing, JavaFX & SWT 3
T Aussehen von JFrame bzw JInternalFrame ändern... wie? AWT, Swing, JavaFX & SWT 23
J Swing JInternalFrame AWT, Swing, JavaFX & SWT 5
S Swing JInternalFrame: Mehrere Probleme AWT, Swing, JavaFX & SWT 3
S Swing JInternalFrame: Titelleiste entfernen AWT, Swing, JavaFX & SWT 5
R Swing JFrame oder JInternalFrame? AWT, Swing, JavaFX & SWT 13
B JInternalFrame resize event AWT, Swing, JavaFX & SWT 2
X JInternalFrame AWT, Swing, JavaFX & SWT 3
G JInternalFrame AWT, Swing, JavaFX & SWT 2
W JInternalFrame alleine funktionsfähig AWT, Swing, JavaFX & SWT 5
A JSplitPane in JInternalFrame AWT, Swing, JavaFX & SWT 2
G JInternalFrame und beinhaltende Komponenten 'abschalten' AWT, Swing, JavaFX & SWT 2
K Tab von JPanel nach JInternalFrame AWT, Swing, JavaFX & SWT 2
M JInternalFrame Titel sichtbar setzen AWT, Swing, JavaFX & SWT 2
K JInternalFrame - schwarzer Bildschirm AWT, Swing, JavaFX & SWT 2
M JInternalFrame ohne Titelbalken AWT, Swing, JavaFX & SWT 5
S Kontextmenu im JInternalFrame unterdrücken AWT, Swing, JavaFX & SWT 5
G Layerproblem JInternalFrame AWT, Swing, JavaFX & SWT 2
X Externe Anwendungen in JInternalframe starten. AWT, Swing, JavaFX & SWT 5
T JInternalFrame Vollbild Problem AWT, Swing, JavaFX & SWT 4
X Relative positionierung in einem JInternalFrame AWT, Swing, JavaFX & SWT 3
J JInternalFrame "schimmert" durch AWT, Swing, JavaFX & SWT 4
D JInternalFrame iconified Position nach parent-resize AWT, Swing, JavaFX & SWT 2
DeeDee0815 JInternalFrame in JScrollpane AWT, Swing, JavaFX & SWT 4
C Hilfe bei JInternalFrame AWT, Swing, JavaFX & SWT 6
J JInternalFrame überlagert/unterlagert anderen Elementen AWT, Swing, JavaFX & SWT 2
DeeDee0815 setContentPane()-Problem bei JInternalFrame AWT, Swing, JavaFX & SWT 2
W Unterdrückung von FrameIcon-Funktion im JInternalFrame AWT, Swing, JavaFX & SWT 5
F JInternalFrame Look and Feel AWT, Swing, JavaFX & SWT 3
W Realisierung Gradient in der Titlebar JInternalFrame AWT, Swing, JavaFX & SWT 7
T JInternalFrame Konflikt mit LayoutManager AWT, Swing, JavaFX & SWT 5
T JInternalFrame und Iconified AWT, Swing, JavaFX & SWT 10
C Tooltip nur anzeigen, wenn JInternalFrame minimiert AWT, Swing, JavaFX & SWT 3
M JInternalFrame mouseEntered/mouseExited AWT, Swing, JavaFX & SWT 8
S Eine Art JInternalFrame in JSplitPane AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben