Fechar internal frame

po galera eu tenho um frame principal e chamo um internal frame em outra classe. Gostaria de saber como fechar o internal frame sem precisar abrir o frame de novo, pq eu to usando o metodo dispose mas ai o frame principal esconde os buttons atras do desktop pane q fica todo branco

internalFame.setVisible(false);

caro abdon, eu fiz o q vc me disse, mas resolveu o problema em parte…
o DesktopPane continua ativo e o frame fica todo branco, mas os labels ficam escondidos e ainda e possivel clicar neles…
segue a classe principal e a arcade, q contem o internal frame
PS: se depois de eu fechar o internal frame clicando no botao VOLTAR, eu minimizar o frame principal e maximiza-lo novamente os labels aparecem

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Principal extends JFrame{

    public Principal(){

    initComponents();
    setBounds(0,0,800,600);

    }

    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jDesktopPane1 = new javax.swing.JDesktopPane();

        getContentPane().setLayout(null);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("BAQUETA");
        setResizable(false);
        jPanel1.setLayout(null);

        jLabel1.setDisplayedMnemonic('A');
        jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 18));
        jLabel1.setText("ARCADE");
        jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel1MouseClicked(evt);
            }
        });

        jPanel1.add(jLabel1);
        jLabel1.setBounds(380, 90, 110, 40);

        jLabel2.setDisplayedMnemonic('e');
        jLabel2.setFont(new java.awt.Font("Times New Roman", 1, 18));
        jLabel2.setText("EXIBI\u00c7\u00c3O");
        jPanel1.add(jLabel2);
        jLabel2.setBounds(380, 186, 110, 40);

        jLabel3.setDisplayedMnemonic('O');
        jLabel3.setFont(new java.awt.Font("Times New Roman", 1, 18));
        jLabel3.setText("OP\u00c7\u00d5ES");
        jPanel1.add(jLabel3);
        jLabel3.setBounds(380, 280, 110, 40);

        jLabel4.setDisplayedMnemonic('X');
        jLabel4.setFont(new java.awt.Font("Times New Roman", 1, 18));
        jLabel4.setText("EXTRAS");
        jPanel1.add(jLabel4);
        jLabel4.setBounds(380, 370, 100, 40);

        jLabel5.setDisplayedMnemonic('S');
        jLabel5.setFont(new java.awt.Font("Times New Roman", 1, 18));
        jLabel5.setText("SAIR");
        jPanel1.add(jLabel5);
        jLabel5.setBounds(380, 460, 100, 40);

        jPanel1.add(jDesktopPane1);
        jDesktopPane1.setBounds(0, 0, 800, 600);

        getContentPane().add(jPanel1);
        jPanel1.setBounds(0, 0, 800, 600);

        pack();
    }
    // </editor-fold>//GEN-END:initComponents


    private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel1MouseClicked
        Arcade arcade = new Arcade();
        arcade.setVisible(true);
        jDesktopPane1.add(arcade);
    }//GEN-LAST:event_jLabel1MouseClicked

 	public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Principal().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JDesktopPane jDesktopPane1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration//GEN-END:variables
}

Classe ARCADE

import javax.swing.JInternalFrame;
import java.awt.event.*;
import java.awt.*;


 public class Arcade extends JInternalFrame {


     public Arcade() {
         initComponents();
         setBounds(0,0,800,600);
     }

    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();

        getContentPane().setLayout(null);

        jPanel1.setLayout(null);

        jLabel1.setDisplayedMnemonic('v');
        jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 18));
        jLabel1.setText("VOLTAR");
        jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel1MouseClicked(evt);
            }
        });

        jPanel1.add(jLabel1);
        jLabel1.setBounds(650, 490, 90, 50);

        getContentPane().add(jPanel1);
        jPanel1.setBounds(0, 0, 800, 600);

        pack();
    }
    // </editor-fold>//GEN-END:initComponents

    private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel1MouseClicked
        setVisible(false);                
        
    }//GEN-LAST:event_jLabel1MouseClicked

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration//GEN-END:variables
}

Classe Arcade

import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import java.awt.event.*;
import java.awt.*;
 
 
  public class Arcade extends JInternalFrame {
 
	  private JFrame chamador = null;
	  
      public Arcade(JFrame chamador) {
          initComponents();
          setBounds(0,0,800,600);
          this.chamador = chamador;
      }
 
     // &lt;editor-fold defaultstate="collapsed" desc=" Generated Code "&gt;//GEN-BEGIN:initComponents
     private void initComponents() {
         jPanel1 = new javax.swing.JPanel();
         jLabel1 = new javax.swing.JLabel();
 
         getContentPane().setLayout(null);
 
         jPanel1.setLayout(null);
 
         jLabel1.setDisplayedMnemonic('v');
         jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 18));
         jLabel1.setText("VOLTAR");
         jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {
             public void mouseClicked(java.awt.event.MouseEvent evt) {
                 jLabel1MouseClicked(evt);
             }
         });
 
         jPanel1.add(jLabel1);
         jLabel1.setBounds(650, 490, 90, 50);
 
         getContentPane().add(jPanel1);
         jPanel1.setBounds(0, 0, 800, 600);
 
         pack();
     }
     // &lt;/editor-fold&gt;//GEN-END:initComponents
 
     private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel1MouseClicked
         setVisible(false);
         chamador.getContentPane().repaint();
         
     }//GEN-LAST:event_jLabel1MouseClicked
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JLabel jLabel1;
     private javax.swing.JPanel jPanel1;
     // End of variables declaration//GEN-END:variables
 }

Classe Principal

import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
 
 public class Principal extends JFrame{
 
     public Principal(){
 
     initComponents();
     setBounds(0,0,800,600);
 
     }
 
     // &lt;editor-fold defaultstate="collapsed" desc=" Generated Code "&gt;//GEN-BEGIN:initComponents
     private void initComponents() {
         jPanel1 = new javax.swing.JPanel();
         jLabel1 = new javax.swing.JLabel();
         jLabel2 = new javax.swing.JLabel();
         jLabel3 = new javax.swing.JLabel();
         jLabel4 = new javax.swing.JLabel();
         jLabel5 = new javax.swing.JLabel();
         jDesktopPane1 = new javax.swing.JDesktopPane();
 
         getContentPane().setLayout(null);
 
         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
         setTitle("BAQUETA");
         setResizable(false);
         jPanel1.setLayout(null);
 
         jLabel1.setDisplayedMnemonic('A');
         jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 18));
         jLabel1.setText("ARCADE");
         jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {
             public void mouseClicked(java.awt.event.MouseEvent evt) {
                 jLabel1MouseClicked(evt);
             }
         });
 
         jPanel1.add(jLabel1);
         jLabel1.setBounds(380, 90, 110, 40);
 
         jLabel2.setDisplayedMnemonic('e');
         jLabel2.setFont(new java.awt.Font("Times New Roman", 1, 18));
         jLabel2.setText("EXIBI\u00c7\u00c3O");
         jPanel1.add(jLabel2);
         jLabel2.setBounds(380, 186, 110, 40);
 
         jLabel3.setDisplayedMnemonic('O');
         jLabel3.setFont(new java.awt.Font("Times New Roman", 1, 18));
         jLabel3.setText("OP\u00c7\u00d5ES");
         jPanel1.add(jLabel3);
         jLabel3.setBounds(380, 280, 110, 40);
 
         jLabel4.setDisplayedMnemonic('X');
         jLabel4.setFont(new java.awt.Font("Times New Roman", 1, 18));
         jLabel4.setText("EXTRAS");
         jPanel1.add(jLabel4);
         jLabel4.setBounds(380, 370, 100, 40);
 
         jLabel5.setDisplayedMnemonic('S');
         jLabel5.setFont(new java.awt.Font("Times New Roman", 1, 18));
         jLabel5.setText("SAIR");
         jPanel1.add(jLabel5);
         jLabel5.setBounds(380, 460, 100, 40);
 
         jPanel1.add(jDesktopPane1);
         jDesktopPane1.setBounds(0, 0, 800, 600);
 
         getContentPane().add(jPanel1);
         jPanel1.setBounds(0, 0, 800, 600);
 
         pack();
     }
     // &lt;/editor-fold&gt;//GEN-END:initComponents
 
 
     private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel1MouseClicked
         Arcade arcade = new Arcade(this);
         arcade.setVisible(true);
         jDesktopPane1.add(arcade);
     }//GEN-LAST:event_jLabel1MouseClicked
 
  	public static void main(String args[]) {
         java.awt.EventQueue.invokeLater(new Runnable() {
             public void run() {
                 new Principal().setVisible(true);
             }
         });
     }
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JDesktopPane jDesktopPane1;
     private javax.swing.JLabel jLabel1;
     private javax.swing.JLabel jLabel2;
     private javax.swing.JLabel jLabel3;
     private javax.swing.JLabel jLabel4;
     private javax.swing.JLabel jLabel5;
     private javax.swing.JPanel jPanel1;
      
      
     // End of variables declaration//GEN-END:variables
 }

Assim vai funfar

valeu mesmo abdon, e sempre bom ter alguem pra nos ajudar qdo se esta comecando…
o forum ta mto bom, parabens ae