Variavel zera ao clicar no botão (Ajuda)

3 respostas
Victor_Duarte_da_Sil

Ola!! sou novo em java e no GUJ e estou com uma duvida?
Tenho um código que era para seu uma calculadora só que parece que cada vez que dou click no botão do mouse a variável num1 zera.
vou colocar o código para vocês darem uma olhada.
ps:era um código que trocava a cor do fundo botão "-" e "=" ñ fora modificadas.

PainelBotoes.java:
import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

 

public class PainelBotoes extends JPanel implements ActionListener {

// variaveis de instancia:

        private JButton botaoMais;

        private JTextField TextoIgual;
        
        int num1 = 0;
        int num2 = 0;
        int num3 = 0;

 

// Construtor

  public PainelBotoes(){
        TextoIgual = new JTextField(40);

        this.add(TextoIgual); //this é opcional. Referencia o painel.

        TextoIgual.addActionListener(this);
        TextoIgual.setText("0");


        botaoMais = new JButton("+");

        this.add(botaoMais); //this é opcional. Referencia o painel.

        botaoMais.addActionListener(this);

   }

 

// metodo de ouvinte, para tratar os eventos gerados ao clicar um botao

   public void actionPerformed(ActionEvent evt){

      Object source = evt.getSource();

      int numero = Integer.parseInt(TextoIgual.getText());
      int num3 = numero+num1;
      int num1 = numero;

      if (source == botaoMais) {
       TextoIgual.setText(""+num3);
      }

   }

}

tem mais dois .java mais acho que ñ vai ser necessário postar

3 Respostas

pedroroxd

Não entendi sua dúvida…
Não sei também o que você quer fazer…

Tenta explicar melhor sua dúvida!
Flws!

Victor_Duarte_da_Sil

pedroroxd:
Não entendi sua dúvida…
Não sei também o que você quer fazer…

Tenta explicar melhor sua dúvida!
Flws!


Eu quero que quando clicar no botão “+” ele pegue o valo do JTextField TextoIgual e some com a variável num1 e armazene o resultado no num3, depois altere o valor do num1 para o valor do JTextField TextoIgual e escrever no JTextField TextoIgual o num3
para que quando clicar novamente no Botão “+” ele some o valor atual do JTextField TextoIgual com o num1 valor anterior do JTextField TextoIgual e escreva a resposta no JTextField TextoIgual.
Mais parece que o num1 fica sempre com o valor 0 em vez de ficar com o valor do JTextField TextoIgual antes de clicar no botão “+”

dei uma limpada no código apaguei os botões “-” e “=” editei a pergunta

Y

Voce esta redeclarando as variaveis dentro do metodo. As variaveis que estao no actionPerformed nao sao as mesmas declaradas como atributo da classe, apenas tem o mesmo nome.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

 

public class PainelBotoes extends JPanel implements ActionListener {

// variaveis de instancia:

        private JButton botaoMais;

        private JTextField TextoIgual;
        
        int num1 = 0;
        int num2 = 0;
        int num3 = 0;


   public void actionPerformed(ActionEvent evt){

      Object source = evt.getSource();

      int numero = Integer.parseInt(TextoIgual.getText());
      int num3 = numero+num1; // retire a indicacao de tipo
      int num1 = numero;

      if (source == botaoMais) {
       TextoIgual.setText(""+num3);
      }

   }
Criado 13 de novembro de 2009
Ultima resposta 15 de nov. de 2009
Respostas 3
Participantes 3