GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

JAVA para desktop MVC

java
Tags: #<Tag:0x00007f5156b9fec0>

#21

Use métodos para pegar os valores dos componentes:

na view:

public String getNome() {
    String nome = nomeAluno.getText();
    if (nome == null) return "";
    return nome.trim();
}

public int getRG() {
    try {
        return Integer.parseInt(rgAluno.getText());
    } catch(Exception e) {
      return -1;
    }
}

no action:

    try {
        aluno.setNome(getName());
        aluno.setRg(getRG());
        
        aluno = manteralunofacade.alterar(aluno);
        JOptionPane.showMessageDialog(null, "Alterado com sucesso!");
        limparCampos();
    } catch (Exception ex) {
        JOptionPane.showMessageDialog(null, ex.getMessage());
    }

no controle:

public Aluno alterar(Aluno aluno) throws Exception{
   validarAluno(aluno);
   return mad.alterar(aluno);
}

public void validarAluno(aluno) {
  if (aluno.getNome == null || aluno.getNome.isEmpty()) throw new Exception("Nome inválido!");
  if (aluno.getRG <= 0) throw new Exception("RG inválido!");
}

[EDIT]
melhor criar uma classe para validar:

public class ValidadorDeAluno {
  public void validar(Aluno aluno) throws Exception {}
}

ValidadorDeAluno validadorDeAluno = new ValidadorDeAluno ();
public Aluno alterar(Aluno aluno) throws Exception{
   validadorDeAluno.validar(aluno);
   return mad.alterar(aluno);
}

#22

Boa noite @diego12 obrigado pela ajuda.
Agora estou fazendo as DAOs de arrays, mas eu fiz o inserir eu creio que esta certo mas não esta adicionando na array, não aprece erro nenhum

 public boolean inserir(String nome, Integer rg) throws Exception {
        int cont = 0;
        Aluno al = new Aluno();
        al.setNome(nome);
        al.setRg(rg);
        ArrayList<Aluno> alunos = new ArrayList<>();
        alunos.add(al);
        return cont > 0;
       
    }

#23

Onde está sendo armazenada a lista?

ArrayList<Aluno> alunos = new ArrayList<>();
 public boolean inserir(String nome, Integer rg) throws Exception {
        // int cont = 0;
        Aluno al = new Aluno();
        al.setNome(nome);
        al.setRg(rg);
        alunos.add(al);
        // return cont > 0;
       return true;
    }

#24

Na ArrayList alunos
criei o objeto aluno
Aluno al = new Aluno();
pego as propriedades e coloco no objeto
al.setNome(nome);
al.setRg(rg);
Ai coloco o objeto na arraylist
alunos.add(al);
né?


#25

Sim, mas “onde está sendo armazenada a lista” ? Como vc acessaria a lista se vc a perdesse? A solução seria colocando a lista como atributo da classe.


#27

Assim né:
public class ManterAlunoDAO extends Conexao implements InterfaceManterAlunoDAO{

private ArrayList<Aluno> aluno = new ArrayList<>();


@Override
public boolean inserir(String nome, Integer rg) throws Exception {
    int cont = 0;
    Aluno al = new Aluno();
    al.setNome(nome);
    al.setRg(rg);
    ArrayList<Aluno> alunos = new ArrayList<>();
    alunos.add(al);
    return cont > 0;
   
}

Se for assim, já estava assim, mas não esta gravando


#28

Falta remover aquela linha:

al.setRg(rg);
// ArrayList<Aluno> alunos = new ArrayList<>(); // remover
alunos.add(al);

#29

Consegui, acabei mudando o parâmetro do método para objeto

 @Override
    public boolean inserir(Aluno aluno) throws Exception {
        this.aluno.add(aluno);
        return true;
       
    }

Estou fazendo o de busca agora, mas não esta dando certo:

         public Aluno consulta(Aluno aluno) {
                int tamanho = this.aluno.size();
                int aux=0;
                for(int i = 0; i<tamanho; i++){
                    if(this.aluno.get(i).getRg().equals(aluno.getRg())){
                        aluno = this.aluno.get(i);
                        aux++;
                    }
                    if(aux == 0)
                        throw new UnsupportedOperationException("Nenhum aluno encontrado.");
                    return aluno;
                }
                return aluno;
                
            }

#30

Não faz sentido buscar algo que já tem, faça as buscas pelos atributos:

        public Aluno buscarAlunoPorRg(Integer rg) {
            int tamanho = this.aluno.size();
            for(int i = 0; i<tamanho; i++){
                if(this.aluno.get(i).getRg().equals(rg)){
                    return this.aluno.get(i);
                }
            }
            throw new UnsupportedOperationException("Nenhum aluno encontrado.");
        }

#31

Não sei pq mas ele entra na exception toda vez, e eu mandei imprimir a arraylist no botão de inserir e ela esta gravando tudo