Problemas no Cadastro e Login em Java utilizando JForm

Eu estou tentando criar um cadastro e um login no jform, porem parece que o meu vetor não esta salvando as informaçoes, alguem consegue entender o porque?
Esse é o meu código:

//Cadastro
if(rbtnAluno.isSelected()){
            aluno.setUsuario(txtCadastroUsuario.getText());
            aluno.setSenha(txtCadastroSenha.getText());
            aluno.setEmail(txtCadastroEmail.getText());
            aluno.setTelefone(txtCadastroTelefone.getText());
            aluno.setNome(txtCadastroNome.getText());
            aluno.setDataNascimento(txtCadastrodataNascimento.getText());
            aluno.setEndereco(txtCadastroEndereco.getText());
            
            JOptionPane.showMessageDialog(null, "Cadastro concluido!");
            registroAluno.add(aluno);
            x = JOptionPane.showInputDialog(null, "Deseja voltar a tela de Login? (S/N)");
            if(x.toUpperCase().equals("S")){
                registroAluno.contains(aluno);
                new TelaLogin().setVisible(true);
                dispose();
                aluno.setUsuario(txtCadastroUsuario.getText());
            aluno.setSenha(txtCadastroSenha.getText());
            aluno.setEmail(txtCadastroEmail.getText());
            aluno.setTelefone(txtCadastroTelefone.getText());
            aluno.setNome(txtCadastroNome.getText());
            aluno.setDataNascimento(txtCadastrodataNascimento.getText());
            aluno.setEndereco(txtCadastroEndereco.getText());
            }
        }
        if(rbtnProfessor.isSelected()){
            professor.setUsuario(txtCadastroUsuario.getText());
            professor.setSenha(txtCadastroSenha.getText());
            professor.setEmail(txtCadastroEmail.getText());
            professor.setTelefone(txtCadastroTelefone.getText());
            professor.setNome(txtCadastroNome.getText());
            professor.setDataNascimento(txtCadastrodataNascimento.getText());
            professor.setEndereco(txtCadastroEndereco.getText());
            
            JOptionPane.showMessageDialog(null, "Cadastro concluido!");
            registroProfessor.add(professor);
            
            x = JOptionPane.showInputDialog(null, "Deseja voltar a tela de Login (S/N)");
            if(x.toUpperCase().equals("S")){
                registroProfessor.contains(professor);
                new TelaLogin().setVisible(true);
                dispose();
                professor.setUsuario(txtCadastroUsuario.getText());
            professor.setSenha(txtCadastroSenha.getText());
            professor.setEmail(txtCadastroEmail.getText());
            professor.setTelefone(txtCadastroTelefone.getText());
            professor.setNome(txtCadastroNome.getText());
            professor.setDataNascimento(txtCadastrodataNascimento.getText());
            professor.setEndereco(txtCadastroEndereco.getText());
            }
        }

//Login
if(txtUsuario.getText().equals(aluno.getUsuario()) || txtSenha.getText().equals(aluno.getSenha())){
            JOptionPane.showMessageDialog(null, "Entrando!");
            new TelaAluno().setVisible(true);
            dispose();
        }
        if(txtUsuario.getText().equals(professor.getUsuario()) || txtSenha.getText().equals(professor.getUsuario())){
            JOptionPane.showMessageDialog(null, "Entrando!");
            new TelaProfessor().setVisible(true);
            dispose();
        }
        else JOptionPane.showMessageDialog(null, "Usuario ou senha inválidos!");
    }

coloca um System.out.println(aluno) pra ver o retorno

ele me retorna isso: aluno.Aluno@3fbc0af9

Em relação a verificação de login, sempre é uma boa pedida usar a ‘trimagem’ no valor do campo para retirar possíveis espaços em branco. Por exemplo:

txtUsuario.getText().trim().equals(aluno.getUsuario());

Sugiro que faça como o @rodriguesabner disse, mas para você ver se os dados estão iguais. Por exemplo:

System.out.println("Caixa de Texto: " + txtUsuario.getText() + "->" + aluno.getusuario());

Ou mesmo:

System.out.println("Iguais? " + (txtUsuario.getText().equals(aluno.getusuario())));

Certa vez passei por problema parecido. As Strings pareciam ser iguais. No entanto ao verificar o tamanho delas, vi que a que vinha do JTextField tinha um caractere a mais. Era um espaço. Então, a partir daquela ocasião, sempre ‘trimo’ as Strings quando as quero comparar e se vierem de um JTextField.

Opa, vlw, eu fiz isso q vc disse e comparei, agora eu sei q o problema e que não esta salvando a classe no Array, o pq eu ainda n consegui descobrir, pra salvar a classe no array n é só usa o comando:

registroAluno.add(aluno);

É um array ou é um ArrayList? Se for um array, para adicionar o aluno tu tem que percorrer o array. Por exemplo:

private static final short TAMANHO = 10;
Aluno[] alunos = new Aluno[TAMANHO];

for(short i = 0; i < TAMANHO; i++){
	alunos[i] = aluno;
}

Se for uma implementação da interface List:

List<Aluno> alunos = new ArrayList<>();
alunos.add(aluno);

daí sim se usa o método add.