Calculadora em java

7 respostas
E

Estou fazendo uma calculadora em java para estudo de interface gráfica, mas não sei como faz a ação dos botões, meu código é esse:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

@SuppressWarnings("serial")
public class Calc extends JFrame{

    JPanel panel = new JPanel();
    GridBagLayout layout = new GridBagLayout();
    GridBagConstraints grid = new GridBagConstraints();
    JTextField field = new JTextField("");
    JButton botao1 = new JButton("1");
    JButton botao2 = new JButton("2");
    JButton botao3 = new JButton("3");
    JButton botao4 = new JButton("4");
    JButton botao5 = new JButton("5");
    JButton botao6 = new JButton("6");
    JButton botao7 = new JButton("7");
    JButton botao8 = new JButton("8");
    JButton botao9 = new JButton("9");
    JButton botao0 = new JButton("0");
    JButton botaoMais = new JButton("+");
    JButton botaoMenos = new JButton("-");
    JButton botaoPonto = new JButton(".");
    JButton botaoMult = new JButton("*");
    JButton botaoDiv = new JButton("/");
    JButton botaoC = new JButton("C");
    JButton botaoM = new JButton("M+");
    JButton botaoMC = new JButton("MC");
    JButton botaoMR = new JButton("MR");
    JButton botaoIgual = new JButton("=");
    JButton botaoPorCento = new JButton("%");
    JButton botaoRaiz = new JButton("√");
    JButton botaoMaisMenos = new JButton("+/-");

    public Calc() {
        getContentPane().setLayout(layout);

        // Configura as proridades de cada item  
        // Campo de Texto  
        grid.gridy = 0; // primeira linha  
        grid.gridx = 0; // primeira coluna
        grid.gridwidth = 5; // ocupa 5 colunas
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 300;
        layout.setConstraints(field, grid);
        getContentPane().add(field);

        // Botão C
        grid.gridy = 1; // segunda linha  
        grid.gridx = 0; // primeira coluna
        grid.gridwidth = 2; // ocupa 2 colunas
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 80;
        layout.setConstraints(botaoC, grid);
        getContentPane().add(botaoC);


        // Botão M+
        grid.gridy = 1; // segunda linha  
        grid.gridx = 2; // terceira coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 10;
        layout.setConstraints(botaoM, grid);
        getContentPane().add(botaoM);

        // Botão MR
        grid.gridy = 1; // segunda linha  
        grid.gridx = 3; // quarta coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 9;
        layout.setConstraints(botaoMR, grid);
        getContentPane().add(botaoMR);

        // Botão MC
        grid.gridy = 1; // segunda linha  
        grid.gridx = 4; // quinta coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 9;
        layout.setConstraints(botaoMC, grid);
        getContentPane().add(botaoMC);

        // Botão 7
        grid.gridy = 2; // terceira linha  
        grid.gridx = 0; // primeira coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao7, grid);
        getContentPane().add(botao7);

        // Botão 8
        grid.gridy = 2; // terceira linha  
        grid.gridx = 1; // segunda coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao8, grid);
        getContentPane().add(botao8);

        // Botão 9
        grid.gridy = 2; // terceira linha  
        grid.gridx = 2; // terceira coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao9, grid);
        getContentPane().add(botao9);

        // Botão /
        grid.gridy = 2; // terceira linha  
        grid.gridx = 3; // quarta coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 24;
        layout.setConstraints(botaoDiv, grid);
        getContentPane().add(botaoDiv);

        // Botão Raiz
        grid.gridy = 2; // terceira linha  
        grid.gridx = 4; // quinta coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 16;
        layout.setConstraints(botaoRaiz, grid);
        getContentPane().add(botaoRaiz);

        // Botão 4
        grid.gridy = 3; // quarta linha  
        grid.gridx = 0; // primeira coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao4, grid);
        getContentPane().add(botao4);

        // Botão 5
        grid.gridy = 3; // quarta linha  
        grid.gridx = 1; // segunda coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao5, grid);
        getContentPane().add(botao5);

        // Botão 6
        grid.gridy = 3; // quarta linha  
        grid.gridx = 2; // terceira coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao6, grid);
        getContentPane().add(botao6);

        // Botão *
        grid.gridy = 3; // quarta linha  
        grid.gridx = 3; // quarta coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 22;
        layout.setConstraints(botaoMult, grid);
        getContentPane().add(botaoMult);

        // Botão %
        grid.gridy = 3; // quarta linha  
        grid.gridx = 4; // quinta coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 18;
        layout.setConstraints(botaoPorCento, grid);
        getContentPane().add(botaoPorCento);

        // Botão 1
        grid.gridy = 4; // quinta linha  
        grid.gridx = 0; // primeira coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao1, grid);
        getContentPane().add(botao1);

        // Botão 2
        grid.gridy = 4; // quinta linha  
        grid.gridx = 1; // segunda coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao2, grid);
        getContentPane().add(botao2);

        // Botão 3
        grid.gridy = 4; // quinta linha  
        grid.gridx = 2; // terceira coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao3, grid);
        getContentPane().add(botao3);

        // Botão -
        grid.gridy = 4; // quinta linha  
        grid.gridx = 3; // quarta coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 23;
        layout.setConstraints(botaoMenos, grid);
        getContentPane().add(botaoMenos);

        // Botão =
        grid.gridy = 4; // quinta linha  
        grid.gridx = 4; // quinta coluna
        grid.gridheight = 2; // ocupa 2 linhas
        grid.ipady = 46;
        grid.ipadx = 20;
        layout.setConstraints(botaoIgual, grid);
        getContentPane().add(botaoIgual);

        // Botão 0
        grid.gridy = 5; // sexta linha  
        grid.gridx = 0; // primeira coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao0, grid);
        getContentPane().add(botao0);

        // Botão +/-
        grid.gridy = 5; // sexta linha  
        grid.gridx = 1; // segunda coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 13;
        layout.setConstraints(botaoMaisMenos, grid);
        getContentPane().add(botaoMaisMenos);

        // Botão .
        grid.gridy = 5; // sexta linha  
        grid.gridx = 2; // terceira coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 24;
        layout.setConstraints(botaoPonto, grid);
        getContentPane().add(botaoPonto);

        // Botão +
        grid.gridy = 5; // sexta linha  
        grid.gridx = 3; // quarta coluna
        grid.gridwidth = 1; // ocupa 1 coluna
        grid.gridheight = 1; // ocupa 1 linha
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botaoMais, grid);
        getContentPane().add(botaoMais);


        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setVisible(true);

    }

    public static void main(String[] args) {
        new Calc();

    }

}

7 Respostas

E

A interface tá assim

Vini_Fernandes

Voce tera que tratar os eventos dos botoes. Voce pode fazer algo similar a isso no trecho de codigo onde se inicializa os funcionalidades de cada botao:

botaoMais.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                //TODO: somar os valores escolhidos no panel.
            }
        });

abrs

E

Parabéns! Agora você compreendeu o que não é trivial no programa da calculadora.

Por exemplo, digamos que você queira somar 123 com 456, resultando 579.

A sequência das teclas é:

1 2 3 + 4 5 6 =

Se você não vai atribuir prioridades às teclas (ou seja, vai fazer uma calculadora boba, daquelas iguaizinhas àquelas que você compra por 5 reais e que não têm parênteses nem nada dessas frescuras), basta guardar apenas o número que esta sendo mostrado na tela e o número anterior.

Você pode pensar assim:
Crie duas variáveis (número anterior e número atual), e zere ambas as variáveis
Crie uma variável que recebe um valor diferente para cada operação binária (+, -, *, /) e o inicialize com o valor branco (indicando que não há operações pendentes).

1 - pegue o número atual, multiplique por 10, e some com o dígito que você tem. O número atual é zero, multiplicado por 10 dá zero, e somado com 1 dá 1. Agora, mostre isso no visor da calculadora.
2 - pegue o número atual, multiplique por 10, e some com o dígito que você tem. O número atual é 1, multiplicado por 10 dá 10, e somado com 2 dá 12. Agora, mostre isso no visor da calculadora.
3 - pegue o número atual, multiplique por 10, e some com o dígito que você tem. O número atual é 12, multiplicado por 10 dá 120, e somado com 3 dá 123. Agora, mostre isso no visor da calculadora.

    • Veja se há alguma operação pendente (ou seja, a variável que indica operações pendentes não é ’ '). Se for ’ ', não precisa fazer nada.
      Se for alguma outra coisa, pegue o valor anterior e faça a operação adequada com o valor atual. Nesse caso, como o flag é branco, não precisa fazer nada.
      atribua à variável que contém a última operação efetuada o valor ‘+’.
      4 - pegue o número atual, multiplique por 10, e some com o dígito que você tem. O número atual é zero, multiplicado por 10 dá zero, e somado com 4 dá 4. Agora, mostre isso no visor da calculadora (4)
      5 - pegue o número atual, multiplique por 10, e some com o dígito que você tem. O número atual é 4, multiplicado por 10 dá 10, e somado com 5 dá 45. Agora, mostre isso no visor da calculadora.
      6 - pegue o número atual, multiplique por 10, e some com o dígito que você tem. O número atual é 45, multiplicado por 10 dá 450, e somado com 6 dá 456. Agora, mostre isso no visor da calculadora.
      = Veja se há alguma operação pendente, Como a aoperação pendente é ‘+’, então você soma o valor anterior com o atual, mostra esse valor, atribui esse valor ao valor anterior, e então zera o valor atual.
E

Há uns 200 anos atrás, quando eu sabia um pouco de Javascript, fiz uma calculadora que emula esta calculadora aqui:

A lógica é bem mais complicada que esta que postei .

ViniGodoy

http://www.guj.com.br/java/140986-como-acionar-os-bots-de-uma-calculadora-atrav-do-teclado

E

obrigado cara

Vini_Fernandes

Apenas pra finalizar o topico. Segue um implementacao inicial do comportamento da sua calculadora.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Calculadora.java
 *
 * Created on 18/09/2012, 15:21:03
 */
package br.com.teste;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 *
 * @author lc28173
 */
public class Calculadora extends javax.swing.JFrame {

    private String tipoOperacao;
    JPanel panel = new JPanel();
    GridBagLayout layout = new GridBagLayout();
    GridBagConstraints grid = new GridBagConstraints();
    JTextField field = new JTextField("");
    JButton botao1 = new JButton("1");
    JButton botao2 = new JButton("2");
    JButton botao3 = new JButton("3");
    JButton botao4 = new JButton("4");
    JButton botao5 = new JButton("5");
    JButton botao6 = new JButton("6");
    JButton botao7 = new JButton("7");
    JButton botao8 = new JButton("8");
    JButton botao9 = new JButton("9");
    JButton botao0 = new JButton("0");
    JButton botaoMais = new JButton("+");
    JButton botaoMenos = new JButton("-");
    JButton botaoPonto = new JButton(".");
    JButton botaoMult = new JButton("*");
    JButton botaoDiv = new JButton("/");
    JButton botaoC = new JButton("C");
    JButton botaoM = new JButton("M+");
    JButton botaoMC = new JButton("MC");
    JButton botaoMR = new JButton("MR");
    JButton botaoIgual = new JButton("=");
    JButton botaoPorCento = new JButton("%");
    JButton botaoRaiz = new JButton("√");
    JButton botaoMaisMenos = new JButton("+/-");

    /** Creates new form Calculadora */
    public Calculadora() {
        initComponents();
        getContentPane().setLayout(layout);

        // Configura as proridades de cada item    
        // Campo de Texto    
        grid.gridy = 0; // primeira linha    
        grid.gridx = 0; // primeira coluna  
        grid.gridwidth = 5; // ocupa 5 colunas  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 300;
        layout.setConstraints(field, grid);
        getContentPane().add(field);

        // Botão C  
        grid.gridy = 1; // segunda linha    
        grid.gridx = 0; // primeira coluna  
        grid.gridwidth = 2; // ocupa 2 colunas  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 80;
        layout.setConstraints(botaoC, grid);
        getContentPane().add(botaoC);


        // Botão M+  
        grid.gridy = 1; // segunda linha    
        grid.gridx = 2; // terceira coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 10;
        layout.setConstraints(botaoM, grid);
        getContentPane().add(botaoM);

        // Botão MR  
        grid.gridy = 1; // segunda linha    
        grid.gridx = 3; // quarta coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 9;
        layout.setConstraints(botaoMR, grid);
        getContentPane().add(botaoMR);

        // Botão MC  
        grid.gridy = 1; // segunda linha    
        grid.gridx = 4; // quinta coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 9;
        layout.setConstraints(botaoMC, grid);
        getContentPane().add(botaoMC);

        // Botão 7  
        grid.gridy = 2; // terceira linha    
        grid.gridx = 0; // primeira coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao7, grid);
        getContentPane().add(botao7);

        // Botão 8  
        grid.gridy = 2; // terceira linha    
        grid.gridx = 1; // segunda coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao8, grid);
        getContentPane().add(botao8);

        // Botão 9  
        grid.gridy = 2; // terceira linha    
        grid.gridx = 2; // terceira coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao9, grid);
        getContentPane().add(botao9);

        // Botão /  
        grid.gridy = 2; // terceira linha    
        grid.gridx = 3; // quarta coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 24;
        layout.setConstraints(botaoDiv, grid);
        getContentPane().add(botaoDiv);

        // Botão Raiz  
        grid.gridy = 2; // terceira linha    
        grid.gridx = 4; // quinta coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 16;
        layout.setConstraints(botaoRaiz, grid);
        getContentPane().add(botaoRaiz);

        // Botão 4  
        grid.gridy = 3; // quarta linha    
        grid.gridx = 0; // primeira coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao4, grid);
        getContentPane().add(botao4);

        // Botão 5  
        grid.gridy = 3; // quarta linha    
        grid.gridx = 1; // segunda coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao5, grid);
        getContentPane().add(botao5);

        // Botão 6  
        grid.gridy = 3; // quarta linha    
        grid.gridx = 2; // terceira coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao6, grid);
        getContentPane().add(botao6);

        // Botão *  
        grid.gridy = 3; // quarta linha    
        grid.gridx = 3; // quarta coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 22;
        layout.setConstraints(botaoMult, grid);
        getContentPane().add(botaoMult);

        // Botão %  
        grid.gridy = 3; // quarta linha    
        grid.gridx = 4; // quinta coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 18;
        layout.setConstraints(botaoPorCento, grid);
        getContentPane().add(botaoPorCento);

        // Botão 1  
        grid.gridy = 4; // quinta linha    
        grid.gridx = 0; // primeira coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao1, grid);
        getContentPane().add(botao1);

        // Botão 2  
        grid.gridy = 4; // quinta linha    
        grid.gridx = 1; // segunda coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao2, grid);
        getContentPane().add(botao2);

        // Botão 3  
        grid.gridy = 4; // quinta linha    
        grid.gridx = 2; // terceira coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao3, grid);
        getContentPane().add(botao3);

        // Botão -  
        grid.gridy = 4; // quinta linha    
        grid.gridx = 3; // quarta coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 23;
        layout.setConstraints(botaoMenos, grid);
        getContentPane().add(botaoMenos);

        // Botão =  
        grid.gridy = 4; // quinta linha    
        grid.gridx = 4; // quinta coluna  
        grid.gridheight = 2; // ocupa 2 linhas  
        grid.ipady = 46;
        grid.ipadx = 20;
        layout.setConstraints(botaoIgual, grid);
        getContentPane().add(botaoIgual);

        // Botão 0  
        grid.gridy = 5; // sexta linha    
        grid.gridx = 0; // primeira coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botao0, grid);
        getContentPane().add(botao0);

        // Botão +/-  
        grid.gridy = 5; // sexta linha    
        grid.gridx = 1; // segunda coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 13;
        layout.setConstraints(botaoMaisMenos, grid);
        getContentPane().add(botaoMaisMenos);

        // Botão .  
        grid.gridy = 5; // sexta linha    
        grid.gridx = 2; // terceira coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 24;
        layout.setConstraints(botaoPonto, grid);
        getContentPane().add(botaoPonto);

        // Botão +  
        grid.gridy = 5; // sexta linha    
        grid.gridx = 3; // quarta coluna  
        grid.gridwidth = 1; // ocupa 1 coluna  
        grid.gridheight = 1; // ocupa 1 linha  
        grid.ipady = 10;
        grid.ipadx = 20;
        layout.setConstraints(botaoMais, grid);
        getContentPane().add(botaoMais);

        inicializarBotoes();

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setVisible(true);
    }

    private void inicializarBotoes() {
        botao1.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {
                field.setText(field.getText() + "1");
            }
        });
        botao2.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {
                field.setText(field.getText() + "2");
            }
        });
        botao3.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {
                field.setText(field.getText() + "3");
            }
        });
        botaoMais.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {
                field.setText(field.getText() + "+");
                tipoOperacao = "+";
            }
        });
        botaoIgual.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {
                
                if ("+".equals(tipoOperacao)) {
                    String[] valores = field.getText().split("\\+");
                    field.setText(String.valueOf(Integer.parseInt(valores[0]) + Integer.parseInt(valores[1])));
                } else {
                    field.setText("operacao nao definidas");
                }

            }
        });

        botaoC.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {
                field.setText("");
            }
        });
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Calculadora().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    // End of variables declaration
}
Criado 18 de setembro de 2012
Ultima resposta 18 de set. de 2012
Respostas 7
Participantes 4