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:
Beim erneuten Öffnen eines der beiden jInternalFrames bekomme ich eine Exception:
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
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