Ir ao conteúdo
  • Cadastre-se
Felipe Ramos_730953

Programa entrando em LOOP

Recommended Posts

Estou tentando usar um botão para registrar dados de um certo textBox num arrayList. Eu sei qual é o problema. Estou instanciando uma classe que instancia a instanciada. Isso cria um loop infinito retardado. No entanto não sei como utilizar esses métodos de forma não estática sem instanciar as classes. Sabem como resolver o problema no contexto do meu programa?

Suprimi algumas classes e informações dentro delas pra não criar muita poluição. Se acharem que precisam de mais coisas do código avisem. Obrigado só por ler.

 


package Controle;



import Interface.Cadastro;
import Modelo.Pessoa;
import java.util.ArrayList;




public class Controle {
    
    ArrayList<Pessoa> nota = new ArrayList(20);
    int ponteiro=0;
    Pessoa pessoa = new Pessoa(); 
    public Cadastro cadastro = new Cadastro();
    
    public void cadastrarPessoa (){
        
        pessoa = new Pessoa();
        pessoa.setNome("joao");
        pessoa.setNome(cadastro.getNomeCadastro().getText());
        pessoa.setEmail(cadastro.getEmailCadastro().getText());
        pessoa.setData(cadastro.getDataCadastro().getText());
        pessoa.setCpf(cadastro.getCpfCadastro().getText());
        pessoa.setRg(cadastro.getRgCadastro().getText());
        pessoa.setTelefone(cadastro.getTelefoneCadastro().getText());
        pessoa.setEndereco(cadastro.getEnderecoCadastro().getText());
        nota.add(ponteiro, pessoa); 
        ponteiro++;
        System.out.println(pessoa.getNome());
    }
    
       


    
}




package Interface;


import Controle.Controle;
import javax.swing.JButton;
import javax.swing.JTextField;


/**
 *
 * @author MEGAWARE
 */
public class Cadastro extends javax.swing.JFrame {


    Controle controle=new Controle();


    
    
    public Cadastro() {


        initComponents();
        
    }


private void initComponents() {
...
...
...
}


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        
        
        controle.cadastrarPessoa();
        
        
        
        
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não necessidade de você instanciar a classe Cadastro dentro da classe controle (Olhando apenas para o que foi postado). Passe apenas o valor dos textBox para o método cadastrarPessoa da classe controle.

Exemplo:

public class Controle {        ArrayList<Pessoa> nota = new ArrayList(20);    int ponteiro=0;    Pessoa pessoa = new Pessoa();         public void cadastrarPessoa (String nomeCadastro, String emailCadastro, String dataNascimento){                pessoa = new Pessoa();        pessoa.setNome("joao");        pessoa.setNome(nomeCadastro);        pessoa.setEmail(emailCadastro);        pessoa.setData(dataNascimento);                nota.add(ponteiro, pessoa);         ponteiro++;        System.out.println(pessoa.getNome());    }                }

No evento do click do botão da classe cadastro:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         	        // TODO add your handling code here:		        controle.cadastrarPessoa(getNomeCadastro().getText(), getEmailCadastro().getText(), getDataCadastro().getText());	   	    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×