Instancia de JPanel em JApplet compilou mas não mostrou

[color=blue]Obs: Não há erro de compilação
Quem pode me tirar uma dúvida, tem o trabalho da facul que estou fazendo sobre Applet, neste trabalho eu tenho uma tela principal, estou utilizando JApplet, nessa tela tenho um menu onde tenho um item “Novo Registro” que chama uma outra tela que grava em um Array o que for passado nos JTextFields. Só que estava utilizando o JFrame para esta tela de cadastro que é add a minha JInternalPane dentro de minha JApplet principal, o problema é que a tela principal e a de cadastro são chamadas fora do Applet Viewer, criei um html para chamar esse Applet e resultou no mesmo, como se fosse uma aplicação desktop e não Applet.

Agora eu substituí o extends JFrame da tea cadastro que tá em outa classe por extends JPanel para ser chamado dentro do Applet só que não aparece o Painel, já verifiquei o setLayout e tá correto e o setVisible, show(), o setSize(300,300) também.

Também coloquei o Menu dentro da principal e deu certo, mas quando clico no botão não traz a tela:

O código está aqui:
Minha classe principal: [/color]
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JApplet;
import javax.swing.JDesktopPane;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

import telas.TelaNovoReg2;

public class TrabalhoApplet2 extends JApplet {
JMenuBar mbar;
JMenu magenda;
JMenuItem minr;
JPanel principal;

public void init(){
this.getContentPane().setLayout(null);
mbar = new JMenuBar();
magenda = new JMenu(“Contato”);
minr = new JMenuItem(“Novo Registro”);
principal = new JPanel();

this.add(principal);
magenda.add(minr);
mbar.add(magenda);
this.setJMenuBar(mbar);

minr.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent evt){
TelaNovoReg2 tela = new TelaNovoReg2();
// mostra tela
tela.show();
}
}
); // fim addActionListener do minr

this.setSize(507,370);
this.setLocation(0,0);
} // fim do inicializador do applet
} // fim da classe

[color=blue]*****************************************************
A classe de cadastro, tela de cadastro: [/color]

package telas;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import persistencia.ArrayContato;
import persistencia.Contato;

public class TelaNovoReg2 extends JPanel{

private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JPanel jPanel1;

JLabel lblNome,lblEndereco,lblTel;
JButton btnSalvar,btnLimpar;
JTextField txtNome,txtEndereco,txtTel1,txtTel2,txtTel3;
JPanel painel;
public TelaNovoReg2(){

painel.setLayout(null);

lblNome = new JLabel(“Nome”);
lblEndereco = new JLabel(“Endereço completo”);
lblTel = new JLabel(“DDD + Telefone”);
txtNome = new JTextField(120);
txtEndereco = new JTextField(255);
txtTel1 = new JTextField(14);
txtTel2 = new JTextField(14);
txtTel3 = new JTextField(14);
btnSalvar = new JButton(“Salvar”);
btnLimpar = new JButton(“Limpar”);

lblNome.setBounds(10,8,40,16);
txtNome.setBounds(10,25,288,1; // diferenca de 1
//------------------- diferenca de 5
lblEndereco.setBounds(10,46,130,16);
txtEndereco.setBounds(10,63,288,1;
//--------------------------
lblTel.setBounds(10,84,160,16);
txtTel1.setBounds(10,101,100,1;
txtTel2.setBounds(114,101,100,1;
txtTel3.setBounds(218,101,90,1;
//-------------------------
btnSalvar.setBounds(10,134,90,16);
btnLimpar.setBounds(104,134,90,16);
painel = new JPanel();

painel.add(lblNome);
painel.add(txtNome);
painel.add(lblEndereco);
painel.add(txtEndereco);
painel.add(lblTel);
painel.add(txtTel1);
painel.add(txtTel2);
painel.add(txtTel3);
painel.add(btnSalvar);
painel.add(btnLimpar);

painel.setSize(500,370);

btnSalvar.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent evt){
ArrayContato array = new ArrayContato();
Contato contato = new Contato();
if(txtNome.getText().equals("")){
JOptionPane.showMessageDialog(null,“Favor preencher o " Nome " “);
}else if(txtEndereco.getText().equals(””)){
JOptionPane.showMessageDialog(null,“Favor preencher o " Endereço " “);
}else if(txtTel1.getText().equals(””) & txtTel2.getText().equals("") & txtTel3.getText().equals("") ){
JOptionPane.showMessageDialog(null,“Favor preencher pelo menos um " Telefone " “);
}
contato.setNome(txtNome.getText());
contato.setEndereco(txtEndereco.getText());
contato.setTel1(txtTel1.getText());
contato.setTel2(txtTel2.getText());
contato.setTel3(txtTel3.getText());
array.setLista(contato);
txtNome.setText(””);
txtEndereco.setText("");
txtTel1.setText("");
txtTel2.setText("");
txtTel3.setText("");
} // fim do disparo do evento
} // fim da nova instancia de uma acao
); // fim adicionar acao

btnLimpar.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent evt){
txtNome.setText("");
txtEndereco.setText("");
txtTel1.setText("");
txtTel2.setText("");
txtTel3.setText("");
} // fim do disparo do evento
} // fim da nova instancia de uma acao
);// fim adicionar acao
} // fim construtor
} // fim da classe [color=#444444][/color]

Uma dica Amigo , use a tag CODE…fica mais facil entender seu código.

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JApplet; 
import javax.swing.JDesktopPane; 
import javax.swing.JInternalFrame; 
import javax.swing.JLabel; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JMenuItem; 
import javax.swing.JPanel; 

import telas.TelaNovoReg2; 


public class TrabalhoApplet2 extends JApplet { 
JMenuBar mbar; 
JMenu magenda; 
JMenuItem minr; 
JPanel principal; 

public void init(){ 
this.getContentPane().setLayout(null); 
mbar = new JMenuBar(); 
magenda = new JMenu("Contato"); 
minr = new JMenuItem("Novo Registro"); 
principal = new JPanel(); 

this.add(principal); 
magenda.add(minr); 
mbar.add(magenda); 
this.setJMenuBar(mbar); 

minr.addActionListener( 
new ActionListener(){ 
public void actionPerformed(ActionEvent evt){ 
TelaNovoReg2 tela = new TelaNovoReg2(); 
// mostra tela 
tela.show(); 
} 
} 
); // fim addActionListener do minr 

this.setSize(507,370); 
this.setLocation(0,0); 
} // fim do inicializador do applet 
} // fim da classe 

***************************************************** 
A classe de cadastro, tela de cadastro: 

package telas; 

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JApplet; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 

import persistencia.ArrayContato; 
import persistencia.Contato; 

public class TelaNovoReg2 extends JPanel{ 

private javax.swing.JButton jButton1; 
private javax.swing.JButton jButton2; 
private javax.swing.JButton jButton3; 
private javax.swing.JButton jButton4; 
private javax.swing.JPanel jPanel1; 

JLabel lblNome,lblEndereco,lblTel; 
JButton btnSalvar,btnLimpar; 
JTextField txtNome,txtEndereco,txtTel1,txtTel2,txtTel3; 
JPanel painel; 
public TelaNovoReg2(){ 

painel.setLayout(null); 

lblNome = new JLabel("Nome"); 
lblEndereco = new JLabel("Endereço completo"); 
lblTel = new JLabel("DDD + Telefone"); 
txtNome = new JTextField(120); 
txtEndereco = new JTextField(255); 
txtTel1 = new JTextField(14); 
txtTel2 = new JTextField(14); 
txtTel3 = new JTextField(14); 
btnSalvar = new JButton("Salvar"); 
btnLimpar = new JButton("Limpar"); 

lblNome.setBounds(10,8,40,16); 
txtNome.setBounds(10,25,288,1; // diferenca de 1 
//------------------- diferenca de 5 
lblEndereco.setBounds(10,46,130,16); 
txtEndereco.setBounds(10,63,288,1; 
//-------------------------- 
lblTel.setBounds(10,84,160,16); 
txtTel1.setBounds(10,101,100,1; 
txtTel2.setBounds(114,101,100,1; 
txtTel3.setBounds(218,101,90,1; 
//------------------------- 
btnSalvar.setBounds(10,134,90,16); 
btnLimpar.setBounds(104,134,90,16); 
painel = new JPanel(); 


painel.add(lblNome); 
painel.add(txtNome); 
painel.add(lblEndereco); 
painel.add(txtEndereco); 
painel.add(lblTel); 
painel.add(txtTel1); 
painel.add(txtTel2); 
painel.add(txtTel3); 
painel.add(btnSalvar); 
painel.add(btnLimpar); 


painel.setSize(500,370); 

btnSalvar.addActionListener( 
new ActionListener(){ 
public void actionPerformed(ActionEvent evt){ 
ArrayContato array = new ArrayContato(); 
Contato contato = new Contato(); 
if(txtNome.getText().equals("")){ 
JOptionPane.showMessageDialog(null,"Favor preencher o \" Nome \" "); 
}else if(txtEndereco.getText().equals("")){ 
JOptionPane.showMessageDialog(null,"Favor preencher o \" Endereço \" "); 
}else if(txtTel1.getText().equals("") & txtTel2.getText().equals("") & txtTel3.getText().equals("") ){ 
JOptionPane.showMessageDialog(null,"Favor preencher pelo menos um \" Telefone \" "); 
} 
contato.setNome(txtNome.getText()); 
contato.setEndereco(txtEndereco.getText()); 
contato.setTel1(txtTel1.getText()); 
contato.setTel2(txtTel2.getText()); 
contato.setTel3(txtTel3.getText()); 
array.setLista(contato); 
txtNome.setText(""); 
txtEndereco.setText(""); 
txtTel1.setText(""); 
txtTel2.setText(""); 
txtTel3.setText(""); 
} // fim do disparo do evento 
} // fim da nova instancia de uma acao 
); // fim adicionar acao 

btnLimpar.addActionListener( 
new ActionListener(){ 
public void actionPerformed(ActionEvent evt){ 
txtNome.setText(""); 
txtEndereco.setText(""); 
txtTel1.setText(""); 
txtTel2.setText(""); 
txtTel3.setText(""); 
} // fim do disparo do evento 
} // fim da nova instancia de uma acao 
);// fim adicionar acao 
} // fim construtor 
} // fim da classe 

Coloque no seu principal um JDesktopPane e troca o seu JPanel por JInternalFrame.
dai vc dá um desktopPane.add(seuInternalFrame);
Sacou ?