public void closeFrontmostSession() { JInternalFrame[] frames = desktopPane.getAllFramesInLayer(0); if (frames.length > 0) { frames[0].dispose(); Map<SessionEditor, JInternalFrame> framesMap = this.framesMap; for (Iterator<SessionEditor> i = framesMap.keySet().iterator(); i.hasNext(); ) { SessionEditor key = i.next(); JInternalFrame value = framesMap.get(key); if (value == frames[0]) { i.remove(); break; } } } }