Interligar Um JInternalFrame com uma classe Exterior

[color=“darkblue”][/color]Como chamar uma classe para um internal frame , que eu possa configurar em um JFrame exteno a está classe .

import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JMenu;
import javax.swing.JMenuBar;

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

public class Tela extends JFrame {

private JDesktopPane desktoppane = new JDesktopPane(); 

public Tela() { 
    super(" PROGRAMA TESTE "); 
    inicializa();
    setExtendedState(MAXIMIZED_BOTH);
    show(); 

}

private void inicializa() {
      
  /* Comeca aqui o teste do menu CADASTRO
   *
   * Vitor Hugo */
      
  
  // cria a barra de menu 
  JMenuBar menuBar = new JMenuBar();
  
  // cria o menu na barra 
  JMenu menuCadastro = new JMenu(" Cadastro"); 
  
  // cria o item do menu 
  JMenuItem menuCadastroAdicionar = new JMenuItem("Adicionar"); 
  
  // adiciona o evento para clique no menu "ADICIONAR" 
  menuCadastroAdicionar.addActionListener( 
        new ActionListener(){ 
           public void actionPerformed(ActionEvent e){ 
              // Cria um novo InternalFrame 
              [b]JInternalFrame frame = new JInternalFrame("Cadastro Adicionar "); 
              // e adiciona no desktop 
              desktoppane.add(frame); 
              // tamanho... 
              frame.setSize(200,200); 
              // se pode ser fechado (X)... 
              frame.setClosable(true); 
              frame.setMaximizable(true); 
              frame.setIconifiable(true); 
              frame.setResizable(true); 
              // mostra 
              frame.show(); 
           } [/b]            }); 
  //adiciona o item de menu no menu 
  menuCadastro.add(menuCadastroAdicionar);       
        
  // cria o item do menu 
  JMenuItem menuCadastroRemover = new JMenuItem("Remover"); 
  
  // adiciona o evento para clique no menu "REMOVER" 
  menuCadastroRemover.addActionListener( 
        new ActionListener(){ 
           public void actionPerformed(ActionEvent e){ 
              // Cria um novo InternalFrame 
              JInternalFrame frame = new JInternalFrame("Cadastro Remover "); 
              // e adiciona no desktop 
              desktoppane.add(frame); 
              // tamanho... 
              frame.setSize(200,200); 
              // se pode ser fechado (X)... 
              frame.setClosable(true); 
              frame.setMaximizable(true); 
              frame.setIconifiable(true); 
              frame.setResizable(true); 
              // mostra 
              frame.show(); 
           } 
        }); 
  //adiciona o item de menu no menu 
  menuCadastro.add(menuCadastroRemover);       
    
  
  
  // cria o item do menu 
  JMenuItem menuCadastroEditar = new JMenuItem("Editar"); 
  
  // adiciona o evento para clique no menu "EDITAR" 
  menuCadastroEditar.addActionListener( 
        new ActionListener(){ 
           public void actionPerformed(ActionEvent e){ 
              // Cria um novo InternalFrame 
              JInternalFrame frame = new JInternalFrame("Cadastro Editar "); 
              // e adiciona no desktop 
              desktoppane.add(frame); 
              // tamanho... 
              frame.setSize(200,200); 
              // se pode ser fechado (X)... 
              frame.setClosable(true); 
              frame.setMaximizable(true); 
              frame.setIconifiable(true); 
              frame.setResizable(true); 
              // mostra 
              frame.show(); 
           } 
        }); 
  //adiciona o item de menu no menu 
  menuCadastro.add(menuCadastroEditar);     

  
  
  // cria o item do menu 
  JMenuItem menuCadastroConsultar = new JMenuItem("Consultar"); 
  
  // adiciona o evento para clique no menu "EDITAR" 
  menuCadastroConsultar.addActionListener( 
        new ActionListener(){ 
           public void actionPerformed(ActionEvent e){ 
              // Cria um novo InternalFrame 
              JInternalFrame frame = new JInternalFrame("Consultar Cadastro "); 
              // e adiciona no desktop 
              desktoppane.add(frame); 
              // tamanho... 
              frame.setSize(200,200); 
              // se pode ser fechado (X)... 
              frame.setClosable(true); 
              frame.setMaximizable(true); 
              frame.setIconifiable(true); 
              frame.setResizable(true); 
              // mostra 
              frame.show(); 
           } 
        }); 
  //adiciona o item de menu no menu 
  menuCadastro.add(menuCadastroConsultar);       
    
  
  
  // cria o item do menu 
  JMenuItem menuCadastroLista = new JMenuItem("Listar Cliente"); 
  
  // adiciona o evento para clique no menu "LISTAR CLIENTE" 
  menuCadastroLista.addActionListener( 
        new ActionListener(){ 
           public void actionPerformed(ActionEvent e){ 
              // Cria um novo InternalFrame 
              JInternalFrame frame = new JInternalFrame("Listar Cliente Cadastrados "); 
              // e adiciona no desktop 
              desktoppane.add(frame); 
              // tamanho... 
              frame.setSize(200,200); 
              // se pode ser fechado (X)... 
              frame.setClosable(true); 
              frame.setMaximizable(true); 
              frame.setIconifiable(true); 
              frame.setResizable(true); 
              // mostra 
              frame.show(); 
           } 
        }); 
  //adiciona o item de menu no menu 
  menuCadastro.add(menuCadastroLista);       
  
  // e o menu na barra de menu 
  menuBar.add(menuCadastro); 
  // adiciona menu na janela principal 
  setJMenuBar(menuBar); 
   
  // Adiciona o desktoppane 
  getContentPane().add(desktoppane, BorderLayout.CENTER); 

}
public static void main(String args[]) {
new Tela().show();
}

}

[color=“black”][/color]

Tudo se baseia em referencia: se seu internalFrame tem referencia do exterior, nao vejo problemas. Agora pra descobrir se tem alguem rodando do lado de fora, e mexer com ele, ai num sei nao.

Abraços!