Problema com Cadastro em vetores

ola, sou novo aqui no forum e em programaçao java.
estou com um problema nas funcoes de cadastro q seguem ai no codigo.
o problema é o seguinte,
eu compilo o programa e quando seleciono a opçao para realizar algum cadastro, executa somente o primeiro codigo da funçao
ex: x[i].codigoCargo = Integer.parseInt(JOptionPane.showInputDialog(null,“Informe o codigo do cargo”));
quando eu informo o codigo o prog fexa sozinho.
alguem poderia me ajudar ja tentei d varias manerias e n estou conseguindo.

principal

[code] package gerenciamentouniversidade;
/**
*

  • @author Eduardo
    */
    import javax.swing.JOptionPane;
    public class Main
    {
    static professores vetorPro [] = new professores[10];
    static administrativos vetorAdm [] = new administrativos[8];
    static titulos vetorTitulos [] = new titulos [3];
    static cargos VetorCargo [] = new cargos [5];

    public static void main(String[] args)
    {
    menu();

    }
    public static void menu ()
    {
    char escolha = ‘?’;
    while(escolha != ‘f’)
    {
    escolha = (char) Integer.parseInt(JOptionPane.showInputDialog(null,“Informe a Opçao.\n 1- Cadastrar titulos \n 2- Cadastrar cargos \n 3- Cadastrar professores \n 4- Cadastrar funcionario administrativo \n 5- Mostrar relaçao de funcionaios \n 6- Mostrar relacao de professores \n 7- Excluir titulos \n 8- Excluir cargos \n 9- Excluir professores \n F- finalizar”));
    switch (escolha)
    {
    case 1: cadastroTitulos(); break;
    case 2: cadastroCargos(); break;
    case 3: cadastroProfessor(); break;
    case 4: cadastroFuncAdm(); break;
    case 5: mostraFuncionarios();break;
    case 6: mostraProfessor(); break;
    case 7: excluiTitulo(); break;
    case 8: excluiCargo();break;
    case 9: mostracargo();;break;
    case ‘f’: break;
    default : JOptionPane.showMessageDialog(null,“Opção Inavalida!”);
    }
    }

    }
    public static void cadastroCargos ()
    {
    int i = 0;
    //cargos x = new cargos();
    cargos x[] = new cargos[5];

         x[i].codigoCargo = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe o codigo do cargo"));
         x[i].Descrisao = JOptionPane.showInputDialog(null,"Descrisao do cargo");
         x[i].valorSalario = Float.parseFloat(JOptionPane.showInputDialog(null,"Digite o valor do salario para o cargo"));
         //VetorCargo[i] = x;
         i++;
    

    }
    public static void cadastroTitulos ()
    {
    titulos x = new titulos();
    //titulos x[] = new titulos[3];
    int i=0;

         x.codigoTitulo = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe o Codigo do titulo"));
         x.descrisao = JOptionPane.showInputDialog(null,"Descrisao do titulo(ex:Mestre)");
         x.valorHoraAula = Float.parseFloat (JOptionPane.showInputDialog(null,"Informe o valor da hora/aula"));
         vetorTitulos[i] = x;
         i++;
    

    }

    public static void cadastroProfessor()
    {
    professores x = new professores();
    //professores x[] = new professores [10];
    int i=0;

         x.nome = JOptionPane.showInputDialog(null,"Nome do professor");
         x.numeroProfessor = Integer.parseInt(JOptionPane.showInputDialog(null,"Numero do professor"));
         x.cargaHoraria = Integer.parseInt(JOptionPane.showInputDialog(null,"Carga horaria semanal")); 
         x.codigoTitulo = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe o codigo do titulo")); 
         vetorPro[i] = x;
         i++;
    

    }
    public static void cadastroFuncAdm()
    {
    administrativos x = new administrativos();
    // administrativos x[] = new administrativos[8];
    int i=0;

        x.numAdm = Integer.parseInt(JOptionPane.showInputDialog(null,"Numero do Funcionario"));
        x.nome = JOptionPane.showInputDialog(null,"Nome do funcionario");
        x.codigoCargo = Integer.parseInt(JOptionPane.showInputDialog(null,"Codigo do cargo"));
        vetorAdm[i] = x;
        i++;
    

    } [/code]

cargos

[code]package gerenciamentouniversidade;

/**
*

  • @author Eduardo
    */
    class cargos {
    int codigoCargo;
    float valorSalario;
    String Descrisao;

}[/code]

com a funçao deste modo ele n fexa, mas salva os dados sempre no memos endereço de memoria apagando o cadastro anterior.
onde esta o erro?

[code] public static void cadastroCargos ()
{
int i = 0;
cargos x = new cargos();
//cargos x[] = new cargos[5];

        x.codigoCargo = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe o codigo do cargo"));
        x.Descrisao = JOptionPane.showInputDialog(null,"Descrisao do cargo");
        x.valorSalario = Float.parseFloat(JOptionPane.showInputDialog(null,"Digite o valor do salario para o cargo"));
        VetorCargo[i] = x;
        i++;
}[/code]

tente isso:

cargos x[] = new cargos[5]; /* agora vc tem q inicializar cada posição do array ;-) */ x[i] = new cargos();

ok ja tinha conseguido arrumar isso mesmo assim vlw.
o problema é q ele n ta salvando os dados no vetor
oque sera q esta errado.

estou tendo problemas para imprimir o vetor, ele imprime somente o ultimo cadastro alguem poderia me dar uma luz de onde esta o erro?
presiso mto acabar isso. desde ja agradeço.
a funcao de cadastro ficou assim:

[code]public static void cadastroCargos ()
{

        int k;   
        cargos x = new cargos();      
        int qtd = Integer.parseInt(JOptionPane.showInputDialog(null,"Deseja cadastrar quantos cargos(Max - 5)"));   
        if (qtd > 5)   
        {   
            JOptionPane.showMessageDialog(null,"Valor Invalido!");   
            menu();   
        }   
        for (k=0;k<qtd;k++)   
        {   
        x.codigoCargo = Integer.parseInt(JOptionPane.showInputDialog(null,"Informe o codigo do cargo"));   
        x.Descrisao = JOptionPane.showInputDialog(null,"Descrisao do cargo");   
        x.valorSalario = Float.parseFloat(JOptionPane.showInputDialog(null,"Digite o valor do salario para o cargo"));      
        }   
        VetorCargo[iCargos] = x;   
        //iCargos++;   

}[/code]

e a funcao de imprimir assim:

public static void mostracargo() { int j; if (VetorCargo[0] == null) { JOptionPane.showMessageDialog(null,"Nada Cadastrado"); menu(); } for (j=0;j<VetorCargo.length;j++) { JOptionPane.showMessageDialog(null," "+VetorCargo[j].Descrisao+"\n "+VetorCargo[j].codigoCargo+"\nSalario Mensal: "+VetorCargo[j].valorSalario); menu(); } }