Cursos / Jogos Digitais / Programação Estruturada / Aula

arrow_back Aula 15 - Interfaces Gráficas

5. Adicionando Comportamento

Para que nosso programa de calculadora possa funcionar é necessário que você codifique o comportamento resultante das operações de clique nos botões. Essa parte da programação não é feita visualmente. Para começar, vamos criar uma enumeração, como mostrado a seguir:

Essas são as operações da nossa calculadora. A opção “nenhuma” é a opção padrão (inicialmente selecionada) ao se executar a calculadora. Além disso, precisamos adicionar variáveis no JFrame. Acesse o arquivo do JFrame e clique na opção “código-fonte”. Esta opção irá abrir o código-fonte da janela. Adicione as seguinte variáveis logo após a declaração da classe JFrameCalculadora:

As variáveis “valor1” e “valor2” são utilizadas para armazenar os valores a serem operados pela calculadora. Já a variável “operacao” indica a operação a ser realizada, que no início é “nenhuma”. Além disso, há uma variável boleana “limpar”, que será explicada mais adiante.

Note que a declaração não utiliza a palavra chave static. Você entenderá melhor quando usá-la ou não assim que esse módulo acabar e começar o de orientação a objetos.

Vamos aproveitar e adicionar dois procedimentos nesse arquivo, como mostrado a seguir:

O primeiro procedimento é o “operar”, que tem como objetivo realizar a operação correta. Note o uso da variável “operação” para decidir sobre qual operação deve ser realizada. Se for “nenhuma”, isso quer dizer que o valor atualmente digitado (considere que é o “valor2”) é na verdade o primeiro número a ser operado.

Já as outras opções realizam o devido cálculo, armazenando o resultado na variável “valor1”. Por fim, esse valor é transferido para o campo texto e o valor da variável limpar é colocado para true. Note o uso da função “jTextField1.setText()” para substituir o texto atual do campo “texto”. Seu parâmetro é o valor da variável “valor1” convertido para String através da função de conversão “String.valueOf()”.

Já a operação “limpar()” tem como objetivo limpar o campo “texto” se o valor da variável for true, passando seu valor para false no final. O objetivo desse procedimento será explicado mais adiante.

Pois bem, voltemos agora para a programação visual, clicando no botão “projeto”. Para fazermos com que o clique no botão ‘1’ escreva esse valor no campo “texto”, você precisa dar clique duplo em cima desse botão. Ao fazer isso, um espaço de código será apresentado para você preencher. Esse espaço representa o código a ser executado ao acontecer o evento de clique no botão. Por isso dizemos que as interfaces gráficas seguem um modelo baseado em eventos.

Preencha de acordo com o mostrado a seguir:

Observe que apenas a parte em branco é que pode ser alterada. Isso é uma garantia do NetBeans de que você só vai alterar o que é necessário. O comando escrito chama a operação “limpar()”. Essa operação é para limpar o campo “texto” caso o último botão a ser pressionado seja o de uma operação. Isso porque, depois de clicar em uma operação, devemos digitar um segundo número, certo? Para isso, precisamos apagar o número anterior.

Depois, usamos a variável “jTextField1”, que representa o campo “texto” da janela. Veja esses nomes através do “inspetor” do NetBeans. Como você já sabe, o comando “jTextField1.setText()” substitui o texto a ser mostrado pelo componente. No caso, o novo texto é igual a “jTextField1.getText()”, função que retorna o texto atual do componente, concatenado com o número ‘1’. Isso vai adicionar o número 1 à direita do número já digitado.

Esse procedimento deve ser repetido para todos os demais botões de números. E lembre-se, para voltar ao modo de programação visual, é só clicar no botão “projeto” logo acima da área do JFrame. Outra dica, para que os números fiquem alinhados à direita, você pode alterar a propriedade “horizontalAlignment” para right do “jTextField1”.

Agora vamos implementar os botões das operações. Começando pela adição, efetue o duplo clique em cima desse botão para escrever seu comportamento:

Observe na primeira linha que a variável “valor2”, do tipo double, receberá o valor que está no campo “texto”. Para pegar esse valor, você já sabe que deve usar a função “jTextField1.getText()”, porém, o retorno dessa função é uma String. Para converter uma String para double, usamos a função “Double.parseDouble”. Após isso, é indicada a operação a ser realizada (variável “operação”) e chamamos a rotina “operar()”.

Esse mesmo procedimento (duplo clique no botão e escrita do código) deve ser escrito para as operações de subtração e de igualdade. No caso da operação de subtração, o código será “Operacao.SUBTRACAO”. Já para a igualdade, temos o seguinte:

Veja que chamamos diretamente o “operar()”, já que espera-se que a operação a ser realizada já tenha sido indicada. Por fim, indica-se que não há mais nenhuma operação a ser feita, pois ela já foi finalizada.

Versão 5.3 - Todos os Direitos reservados