Duvida sobre JInternalFrame e JDesktopPanel

Aew galera to com uma duvida quero fazer uma pagina principal no meu projeto…onde essa pagina principal tera o menu onde vou chamar outros formularios…eu fiz ele chamar formularios mas nao tenho nehum controle…o usuario pode minimizar e mexer atras ou entao invocar varios formularios…tentei usar o Jdialog e o JInternalFrame mas nao intendo o seguinte…qdo coloco o JinternalFrame eu faço os botoes td certo…mas meus formularios tem codigo…metodos variaveis eu preciso copiar todos os codigos de todos os formularios e jogar nessa pagina principal??

por exemplo

Formulario Departamento

import javax.swing.*;
import classes.*;
import java.sql.*;
import java.util.*;
public class frmDepartamento extends javax.swing.JFrame {

    Object[] coluna = new Object[2];
    Vector linha = new Vector();
    int tamanho;
    ResultSet rs;
    String Estado;
    departamento depto = new departamento();
    
    public frmDepartamento() {
        initComponents();
        depto.setIndice(0);
        ObterRegistro();         
        MudaEstado("navegacao");
    }
    public void ObterRegistro()
    {        
        linha = depto.consultarDepartamento();
        tamanho = linha.size();
        if (linha.size() > 0) {
           PopularCampos();
        } else {          
            JOptionPane.showMessageDialog(null, "Nenhum departamento encontrado.","Consulta de Funcionários",JOptionPane.ERROR_MESSAGE);       
        }
    }
    public void PopularCampos(){
        coluna = (Object[]) linha.get(depto.getIndice());
        lblID.setText((coluna[0]).toString());
        txtDepartamento.setText((coluna[1]).toString());
    }
    private void MudaEstado(String pEstado) 
    {...}

Formulario Função

import javax.swing.*;
import classes.*;
import java.awt.Dimension;
import java.sql.*;
import java.util.*;

public class frmFuncoes extends javax.swing.JFrame {

    Object[] coluna = new Object[2];
    Vector linha = new Vector();
    ResultSet rs;
    String Estado;
    funcao funcao = new funcao();

    /** Creates new form frmFuncoes */
    public frmFuncoes() {
        initComponents();          
       /* try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }
        catch(Exception e) { }*/
        funcao.setIndice(0);
        ObterRegistro();
        MudaEstado("navegacao");
    }

    public void ObterRegistro() {
        linha = funcao.consultarFuncao();
        if (linha.size() > 0) {
            PopularCampos();
        } else {
            JOptionPane.showMessageDialog(null, "Nenhuma função encontrada.", "Consulta de Funções", JOptionPane.ERROR_MESSAGE);
        }
    }

    public void PopularCampos() {
        coluna = (Object[]) linha.get(funcao.getIndice());
        lblID.setText((coluna[0]).toString());
        txtFuncao.setText((coluna[1]).toString());
    }

    private void MudaEstado(String pEstado) {...}

e assim vai como faço esses codigos nos JINternalFrame pelo q to intendendo a pagina principal vai ficar uma linguiça de codigos??

alguem me da uma sugestao detalhada pois sou novo em java
vlw