Me funciono esto, el JInternalFrame cuando se abre lo hace dentro de un JdesktopPanel que está en el JFrame y desde un botón o un JMenuBar podés copiar este código:
try{
JInternalFrame i = panel.getSelectedFrame();
if(i==null){
}else{
i.dispose();
}
}catch(Exception e){
}
try{
JInternalFrame i = panel.getSelectedFrame();
if(i==null){
}else{
i.dispose();
}
}catch(Exception e){
}