Como passar informações de uma JFrame para outra?

6 respostas
jframejava
R

Bom galera, sou iniciante. Estou fazendo um trabalho de escola na qual preciso fazer uma calculadora de churrasco, onde damos entrada com a quantidade de homens e mulheres, e colocamos variaveis tipo double com quanto cada pessoa consome de carne, cerveja, suco, agua e frango. Exemplo: homem consome 1.5 de carne, 0.8 de frango e etc. Mulher consome 0.5 de carne… E quanto eu clicar em calcular devo abrir outra jframe informando a quantidade de carne, frango, agua, suco e cerveja que será necessário para a quantidade de pessoas que foi informado. Eu fiz o programa em uma jframe e funcionou. Mas como preciso que o resultado apareça em outra jframe não sei como endereçar o “setText”, por exemplo, se é que isso é possível. Senão é eu gostaria de saber como faço para (eu ja converti os valores double em string para poder usar o settext e colocar no lugar de uma jlabel), colocar a informação no lugar de uma jlabel ou um jtextfield em outra jframe. Grato desde já

6 Respostas

J

Crie um modelo para armazenar os dados com seus respectivos valores do JFrame principal, no JFrame secundário você faz a instância do seu modelo e recupera os dados através dele!

J

Olá amigo, Primeiramente lhe desejo uma boa tarde!
Bom, Para começar, Gostaria de te explicar como funciona o envio de parâmetros!
Existem vários jeitos de enviar parâmetros de um JFrame para outro, Através do construtor, Através de uma classe separada ou por métodos!

Se for pelo construtor:

public class ex
{

       public ex(TIPO nome-do-parametro)
{

}

}

pode até criar uma String na classe para ficar mais fácil, ficando assim:

public class ex
{

       private String parametro;

       public ex(TIPO nome-do-parametro)
{
        parametro = nome-do-parametro
}

}

por métodos:

public class ex
{

       public ex()
{

}

public void texts(Parametros)
{

}

}

E na classe que vai chama-lá :

public class chamar
{

         //pode chamar no construtor ou em um método aqui dentro

         //para simplificar vou chamar no construtor
        
         public chamar()
{
         new ex().nomedometodo(parametro-a-ser-passado);
}



}

E por fim, por classes

public class ...
{
  ...

   private String conteudo;

public void setConteudo(String conteudo)
{
this.conteudo = conteudo;
}

public String getConteudo()
{
return this.conteudo;
// ou, return conteudo, pois o metodo nao pede nenhum parametro com o mesmo nome das variaveis da classe!
}

}
R

<img src="/uploads/3X/a/5/a5bf1d0d13db924e759b93be131c190451fd8ea1.png.webp" width=“625” height=“500”

Segui um tutorial e coloquei essas linhas. acabei conseguindo enviar mas somente um valor. Sou bem leigo pra entender algumas coisas. Como faço pra mandar mais valores?

M

Uma maneira simples é a utilização setters.

No frame que recebe os valores:

class FrameRecebe{
     //atributos
     private String nome;
     private int idade;
     //setters
     public void setNome(String nome){     
          this.nome = nome;
     }

     public void setIdade(int idade){     
          this.idade = idade;
     }
     //resto do código....
}

Frame que envia os valores:

class FrameEnvia{

    //aqui é evento do botão que chama o outro form
    FrameRecebe f = new FrameRecebe();
    f.setNome("Matheus"); //seta no atributo nome no outro formulário
    f.setIdade(17); //seta o atributo idade no outro formulário
    f.setVisible(true); //
    this.dispose(); //
   

    //resto do código.....
}

Basicamente é isso. Agora que os valores já estão no outro form, você os utiliza da maneira que quiser.

J

Olá, Na classe receptora, é só colocar vários métodos set e cada método setar uma coisa, ou, você pode pedir, no método recebe, todas as Strings e setar o texto de tudo por ele ! :smiley:
Vou ver se te mando um projeto igual

R

Consegui! Obrigado

Criado 15 de dezembro de 2016
Ultima resposta 21 de jan. de 2017
Respostas 6
Participantes 4