InternalFrame

Estou tentando abrir uma janela com InternalFrame no codigo abaixo, ele roda mas não aparece a janela c alguem me ajudar eu agradeço. [code]import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class Programa extends JFrame implements ActionListener
{
private JMenuBar MenuBar;
private JMenu SubMenu,Caixa;
private JMenuItem Cadastro;
private JDesktopPane PDesktop;
private CadastroCliente jifcadastro;

//declaracao do painel central
public static void main(String args[])
{
Programa programa = new Programa();
programa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
programa.setVisible(true);

}

public Programa()
{
//Cria o menu Principal
setTitle(“Software Comercial”);//Titulo
setExtendedState(JFrame.MAXIMIZED_BOTH);//Maximiza a Tela
getContentPane().setBackground(new Color(255,255,255));//Cor do Fundo
JDesktopPane PDesktop = new JDesktopPane();
getContentPane().add(PDesktop);

  MenuBar = new JMenuBar();//Criando uma Barra de menu
  JMenu Arquivo = new JMenu("Arquivo");
  Arquivo.setMnemonic(KeyEvent.VK_A);//Tecla de Atalho
  Arquivo.setVisible(true); 
  MenuBar.add(Arquivo);
  setJMenuBar(MenuBar);

  //cria os itens do menu principal e seus subitens
  Arquivo.addSeparator();
  SubMenu = new JMenu("Caixa");
//SubMenu.setMnemonic(keyEvent.VK_C);
  Cadastro = new JMenuItem("Cadastro");
  Cadastro.addActionListener(this);
  SubMenu.add(Cadastro);
  Arquivo.add(SubMenu);
  setVisible(true);

}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == Cadastro)
{
if(jifcadastro == null)
{ JInternalFrame CadastroCliente = new JInternalFrame(“OI”);
// jifcadastro = new CadastroCliente();
PDesktop.add(jifcadastro);
}
}
}
}

class CadastroCliente extends JInternalFrame
{
public CadastroCliente()
{
setTitle(“sistema”);
setSize(300,400);
setVisible(true);
}
}

[/code]