Ajuda JFrame

Boa tarde, preciso de ajuda para a seguinte duvida.

Quando eu clico no JButton desejado eu preciso que abra outra tela com o JInternalFrame até ai okay, o programa abre o JInternalFrame porém a o JInternalFrame fica dentro do JButton como segue as imagens.

Estou usando o codigo abaixo para abrir o JInternalFrame.

    private void jbcadastrarActionPerformed(java.awt.event.ActionEvent evt) {                                            

        Cadastro cad = new Cadastro ();
        
        jbcadastrar.add(cad);
        
        cad.setVisible(true);

Remova a seguinte linha:

    jbcadastrar.add(cad);

Nessa linha você está adicionando a tela de cadastro dentro do botão jbcadastrar

Então eu mudei o JInternalFrame para JPanel, meu professor falou que ficaria melhor usar o JPanel.

Só que agora eu clico em CADASTRAR e a janela nem abre mais, já tentei da forma que me falou porém não abriu.

private void jbcadastrarActionPerformed(java.awt.event.ActionEvent evt) {
Cadastro cad = new Cadastro ();

cad.setVisible(true);

}

Se mudou para JPanel, ele precisa ser adicionado em um container “pai”.
Sugiro utilizar uma estrutura parecida com essa:

JFrame da janela do sistema
    |
    +-> Painel com CardLayout onde serão inseridos os outros painéis
           |
           +-> Painel de uma tela
           |
           +-> Painel de outra tela
           |
           +-> Painel de mais outra tela