quinta-feira, 26 de janeiro de 2012


Primeiramente, vamos criar um novo aplicativo Java. Estou utilizando a IDE do Netbeans.


Neste exemplo, vou renomear o nome do projeto para ‘calc’.


Vamos clicar sobre o pacote ‘calc’ com o botão direito e adicionar um novo Formulário JFrame.



Renomeie o nome do JFrame para fCalc para identidicar o forumário da calculadora.
A partir daí, só nos resta desenhar a calculadora, utilizando JButton e JTextField como o visor da mesma.
O Formulário fica da seguinte maneira:


Agora basta alterar o nome da variável do visor para começarmos a programar.
Clique com o botão direito em cima do JTextField e clique em ‘Alterar nome da variável’.
Renomeie para ‘visor’ para que possamos identificar e facilitar o código.



Agora, vamos mandar o Java escrever no visor cada número de acordo com cada botão que o usuário clicar.
Vamos criar uma rotina para isso, com o seguinte código:

private void preecher_visor(String valor){
      String valor_atual = visor.getText(); // pega o texto atual do visor
      visor.setText(valor_atual + valor); // adiciona o texto ao valor atual
}



A partir de agora, basta adicionarmos a rotina a cada botão do formulário.
Clique com o botão direito sobre o botão 0 (zero) e selecione Evento>Actions>actionPerformed.



private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {
          preecher_visor("0"); // preenche com o valor 0
      }
  }

Adicione o mesmo código para todos os botões numéricos, apenas mudando o número do preenchimento.
Para continuar, precisamos criar duas variaveis globais que serão usadas pelo projeto todo, uma String para receber o primeiro valor e um Char para receber o operador atual.
Então, declare:

char operador;
String valor1;

Agora podemos criar o procedimento para cada operador.
Adicione para cada operador ao evento actionPerformed o seguinte código, mudando apenas o operador para seu respectivo texto.

operador = '+';  // recebe o operador
valor1 = visor.getText();  // recebe o valor atual do visor
visor.setText("");   // apaga o visor

No caso acima, o código pertence ao botão de soma.
Agora a função responsável por calcular a variavel valor1 com o valor atual pela variavel operador.
Essa função retorna um valor inteiro. repare: private int


private int calcular(int num1, char op, int num2){   // declaramos as variveis necessarias para o calculo
     int res = 0;  // resultado

     if(op == '+'){  // se operador = + entao...
          res = num1 + num2;   // resultado = numero1 + n2
     }
     else if(op == '-'){  // senao, se...
          res = num1 - num2;
     }
     else if(op == '*'){
          res = num1 * num2;
     }
     else if(op == '/'){
          res = num1 / num2;
     }

         return res;   // retorna resultado
     }

Agora, só nos resta o código do botão igual (=) para calcular o valor atual com o valor armazenado na variavel valor1.
Para isso vamos chamar a função que criamos anteriormente que nos retorna um valor inteiro, chamada calcular.


private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) {
String valor2 = visor.getText(); // valor2 recebe o valor atual
int v = Integer.parseInt(valor1); // converte o valor1 em inteiro
int v2 = Integer.parseInt(valor2); // converte valor2 em inteiro
visor.setText(""+calcular(v, operador, v2)); // define o visor pelos parametros da função calcular
// v = valor1 | v2 = valor2 (atual) | operador = variavel declarada anteriormente
}

Ao executarmos a aplicação, o formulário não é exibido, por que?
Porque ele começa sendo executado a partir do arquivo calc.java e não do formulário JFrame (fCalc).
Então, abra o arquivo java.calc e adicione a linha abaixo.


package calc;

import javax.swing.JFrame;

public class Calc {

public static void main(String[] args) {
// cria uma nova instancia do formulário e deixa-o visivel.
new fCalc().setVisible(true);
}
}

E é isso aí! Abraço e até a próxima.

2 comentários:

  1. http://www.youtube.com/watch?v=lwP_w9yS6Jo

    Vídeo aula para complementa o Blog espero ter ajudado.


    Preciso de locais para postar as vídeo aulas.

    ResponderExcluir
  2. Anônimo29.6.17

    E se eu quiser somar mais de 3 números ? e fazer operações diferentes ?

    ResponderExcluir