Ir ao conteúdo
  • Cadastre-se

Programa entrando em LOOP


Posts recomendados

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();
        
        
        
        
    }
Link para o comentário
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());	   	    }
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...