JInternalFrame com JFrame?

Salve galera,

Seguinte, eu uso NetBeans e criei um JFrame com o nome de FramePrincipal onde coloquei meus componentes JMenu, JToolBar, JPanel etc…As janelas internas eu quero fazer com que sejam JInternalFrame, para que fiquem sobre o domino desse JFrame que criei. O problema eh que naum estou sacando como funciona.

Estou tentando fazer assim.

//classe Janela
public class Janela extends JInternalFrame{
      private JDesktopPane desktop;

      public Janela(){
          super("Esta eh uma Janela com JInternalFrame");
          desktop = new JDesktopPane();
          this.setSize(800,600);
          desktop.add(this);
          desktop.setVisible(true);
      }
}

// JFrame - FramePrincipal
private janelas = 0;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    new Janela();
    janelas++;    
}

Não estou conseguindo fazer isso funcionar, ja olhei os Docs e exemplos do proprio Swing, porem ainda nao consegui fazer.
Como fazer com que minhas janelas abertas sejam internas ao frame principal ???

obrigado

na verdade esse e o problema

desktop.add(this);  
desktop.setVisible(true); 

vc tem eu colocar isso la no frame principal, ou seja asssim

.... //Crie objeto do seu JInternalFrame; JInternalFrame objSeuJInternalFrame = new JInternalFrame(); ...

//no metodo construtor do seu JFrame coloque desktop.add(objSeuJInternalFrame); //Naverdade essa parte vc tem que colocar so quando for exibir seu JInternalFrame ou seja la nos eventos JMenuItem desktop.setVisible(true);

Isso tudo la no JFrame ok… vlw

Opa, ambuzr…Vou testar depois posto ae pra comentar o q virou.

[]s e obrigado

opa ambuzr, eu fiz o teste e ainda nao consegui fazer funcionar.

fiz assim.

public class FramePrincipal extends javax.swing.JFrame {
    JDesktopPane desktop;
    TesteFrame tf = new TesteFrame();    

    public FramePrincipal() {
        initComponents();
        
        this.setExtendedState(MAXIMIZED_BOTH);        
        
        desktop = new JDesktopPane();        
        desktop.add(tf);
    }

   private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
        desktop.setVisible(true);
    }

}

//classe do jinternalframe
public class TesteFrame extends JInternalFrame{
    public TesteFrame(){
        super("Minha Tela de Teste JInternalFrame");
        this.setSize(200,200);     
    }
}

Ainda nao consegui resolver.

obrigado

Alguma outra solucao ???

obrigado

Erradooooooo

voce nao vai mostrar nao e o desktopPane como voce disse aqui oh

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {  
        desktop.setVisible(true);  
    }  

e sim o jinternalframe portanto seu codigo devera ser assim nesse ponto

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {  
        tf.setVisible(true);  
    }  

Modificando completamente fica assim:


ublic class FramePrincipal extends javax.swing.JFrame {  
    JDesktopPane desktop;  
    TesteFrame tf = new TesteFrame();      
  
    public FramePrincipal() {  
        initComponents();  
          
        this.setExtendedState(MAXIMIZED_BOTH);          
          
        desktop = new JDesktopPane();          
        desktop.add(tf);  
    }  
  
   private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {  
        tf.setVisible(true);  
    }  
  
}  
  
//classe do jinternalframe  
public class TesteFrame extends JInternalFrame{  
    public TesteFrame(){  
        super("Minha Tela de Teste JInternalFrame");  
        this.setSize(200,200);       
    }  
}