Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Giuseppe G.M.

utilização de for com variaveis

Recommended Posts

Eu procurei a resolução para esse problema e não consegui achar em lugar nenhum, aliás eu tinha a mesma dúvida com ActionScript e foi nesse fórum do iMasters que eu achei solução para essa dúvida, mas só que Java é diferente de ActionScript, ficaria muito grato se vocês pudessem me ajudar de novo, eu vou expor minha dúvida com um exemplo:

 

Eu tenho um JFrame com três caixas de JTextFields, elas se chamam "txtNum1", "txtNum2" e "txtNum3". O que eu quero é que ao clicar no botão "btnCalcular" ele some os valores das três caixas de texto, aí vem a dúvida, eu queria fazer isso com o for, deveria ficar mais ou menos assim:

 

private void btnCalcularActionPerformed(java.awt.event.ActionEvent evt) {
       int Total = 0;
       for (int i = 1; i <= 3; i++) {
           Total = Total + Integer.parseInt(txtNum + i.getText());
       }
   }

 

Mas definitivamente isso não funciona, ele da erro, alguém sabe se tem alguma maneira de usar for para chamar variáveis?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu amigo, bem vindo ao mundo Java e suas limitações. Isso não existe em Java. A não ser que você mesmo implemente um VariableResolver. Poderia ser um método da própria classe que recebe um valor como parâmetro e retorna o objeto. De uma forma bem grosseira poderia ser algo como abaixo.

private void btnCalcularActionPerformed(java.awt.event.ActionEvent evt) {
  int Total = 0;
  for (int i = 1; i <= 3; i++) {
     String texto = this.getComponenteFormulario("txtNum" + i).getText();
     Total = Total + Integer.parseInt(texto);
  }
}

// Poderia usar o tipo base (Component) caso quisesse trabalhar com outros tipos de componentes.
private JTextField getComponenteFormulario(String nome) {
  if (nome.equals("txtNum1") {
     return this.txtNum1;
  }

  return null;
}

 

Isso é só uma idéia do que você pode fazer. Pra mim isso só valeria a pena fazer caso houvesse vários textFields no formulário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu amigo, bem vindo ao mundo Java e suas limitações. Isso não existe em Java. A não ser que você mesmo implemente um VariableResolver. Poderia ser um método da própria classe que recebe um valor como parâmetro e retorna o objeto. De uma forma bem grosseira poderia ser algo como abaixo.

private void btnCalcularActionPerformed(java.awt.event.ActionEvent evt) {
  int Total = 0;
  for (int i = 1; i <= 3; i++) {
     String texto = this.getComponenteFormulario("txtNum" + i).getText();
     Total = Total + Integer.parseInt(texto);
  }
}

// Poderia usar o tipo base (Component) caso quisesse trabalhar com outros tipos de componentes.
private JTextField getComponenteFormulario(String nome) {
  if (nome.equals("txtNum1") {
     return this.txtNum1;
  }

  return null;
}

 

Isso é só uma idéia do que você pode fazer. Pra mim isso só valeria a pena fazer caso houvesse vários textFields no formulário.

 

 

 

Valeu cara, só que eu não entendi direito esse jeito que você botou, mas de qualquer maneira eu tive outra idéia, eu poderia usar somente um JTextField e criar uma variável contador, e quando clicasse no botão ele somasse um ao contador, aí apareceria numa label: "Digite o " + contador + "° número". E teria uma outra variável chamada soma que junto com o contador, cada vez que clicasse o botão iria somar o valor do JTextField. Mas de qualquer forma valeu, esse exemplo que eu passei foi só para mostrar a minha dúvida, o exercício real que eu tinha que fazer precisava pegar a altura e o sexo de 10 pessoas. Eu queria fazer isso sem ter que ficar digitando os nomes de um monte de componentes. Mas agora já consegui fazer desse jeito, valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.