Calculadora Básica com botões

Como faço uma Calculadora Básica com os seguintes botões:

Adição,subtração,multiplicação,divisão,Limpar Dados,Sair.

Como faço essa Calculadora Básicacom botões?

Quer que a galera faça seu dever de casa? 8)

www.google.com

Dá uma lida neste link que ele vai te ajudar:

http://java.sun.com/docs/books/tutorial/uiswing/

Olá

Você pode usar duas abordagens:

  1. Escrever tudo em uma classe só. Tudo, que eu digo, é o código da interface gráfica e as operações da calculadora.
    Vantagens - sai mais rápido.
    Desvantagens - à medida que novas funcionalidades são adicionadas (calcular porcentagem ou potenciação), a classe faz-tudo vai inchando e fica difícil manter.
  2. Escrever primeiro uma classe Calculadora, que posui métodos relativos a todas as suas operações (somar(), subtrair(). etc), TESTÁ-LA através de uma outra classe que chama seus métodos e exibe os resultados em linha de comando mesmo, e depois escrever sua interface gráfica que recebe um objeto do tipo Calculadora. Finalmente, escrever uma classe que contém o método main e exibe a calculadora na tela.
    Vantagens - você tem maior aplicação dos conceitos de OO, e ainda tem um primeiro e informal contato com testes unitários. Além disso, adicionar novas funcionalidades (leia-se: manter o código) fica mais fácil (basta adicionar um novo método à classe Calculadora e criar um novo botão na interface gráfica).
    Desvantagens - sai um pouco mais devagar. Mas essa desvantagem é covardemente compensada pelas vantagens descritas acima.

Abraços

http://www.scribd.com/doc/260919/Tutorial-Netbeans-By-WallCk

Estou me matando para fazer o botão Limpar,por favor me ajudem,e não tenho nenhuma idéia de como fazer o botão sair.

Vejam o Código:


public class NovoJFrame extends javax.swing.JFrame {
    
    /* Cria novo formulario*/
    public NovoJFrame() {
        initComponents();
    }
      
    // <editor-fold defaultstate="collapsed" desc=" Código Gerado ">                          
    private void initComponents() {
        btnadicao = new javax.swing.JButton();
        btnsubtracao = new javax.swing.JButton();
        btndivisao = new javax.swing.JButton();
        btnmulti = new javax.swing.JButton();
        btnsair = new javax.swing.JButton();
        btnlimpar = new javax.swing.JButton();
        TextField1 = new java.awt.TextField();
        TextField2 = new java.awt.TextField();
        TextField3 = new java.awt.TextField();
        label1 = new java.awt.Label();
        label2 = new java.awt.Label();
        label3 = new java.awt.Label();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        btnadicao.setText("Adi\u00e7\u00e3o");

        btnsubtracao.setText("Subtra\u00e7\u00e3o");

        btndivisao.setText("Divis\u00e3o");

        btnmulti.setText("Multiplica\u00e7\u00e3o");

        btnsair.setText("Sair");
        btnsair.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnsairMouseClicked(evt);
            }
        });

        btnlimpar.setText("Limpar");

        label1.setText("Digite o primeiro numero");

        label2.setText("Digite o segundo numero");

        label3.setText("Resultado");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(62, 62, 62)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                                    .addComponent(label2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(label1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
                            .addComponent(label3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(TextField3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE)
                            .addComponent(TextField1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE)
                            .addComponent(TextField2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE)))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(btnadicao)
                            .addComponent(btndivisao))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(btnsubtracao, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btnmulti))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(btnsair, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btnlimpar))))
                .addGap(52, 52, 52))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(71, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(label1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(label2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(label3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(30, 30, 30)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnadicao)
                    .addComponent(btnsair)
                    .addComponent(btnsubtracao))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btndivisao)
                    .addComponent(btnmulti)
                    .addComponent(btnlimpar))
                .addGap(66, 66, 66))
        );
        pack();
    }// </editor-fold>                        

    private void btnsairMouseClicked(java.awt.event.MouseEvent evt) {                                     
        
    }                                    

public void btnlimpar(java.awt.event.MouseEvent evt) { 
Jbutton btnlimpar = new JButton(limpar);
Evento limpar= new Evento("");
btnlimpar.addActionListener(this);
}
}


public class Evento implements ActionListener{
public void actionPerformed(ActionEvent evento) {
if (evento.getSource() == btnlimpar) {
          TextField1.setText("");
          TextField2.setText("");
          TextField3.setText("");
}
}

      public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NovoJFrame().setVisible(true);
            }
        });
    }

    private static void addActionListener(NovoJFrame JFrame) {
   
    }


    
    // Declaração de variáveis - não modifique                     
    private java.awt.TextField TextField1;
    private java.awt.TextField TextField2;
    private java.awt.TextField TextField3;
    private javax.swing.JButton btnadicao;
    private javax.swing.JButton btndivisao;
    private javax.swing.JButton btnlimpar;
    private javax.swing.JButton btnmulti;
    private javax.swing.JButton btnsair;
    private javax.swing.JButton btnsubtracao;
    private java.awt.Label label1;
    private java.awt.Label label2;
    private java.awt.Label label3;
    // Fim da declaração de variáveis                   
    
}

Cara, fiz uma calculadora porreta, testa ai:

import java.io.IOException;

class Teste {
	public static void main(String[] args) throws IOException {
		Runtime.getRuntime().exec("calc");
	}
}

Para o botão fechar coloque dispose() dentro do metodo que será disparado quando o botão for clicado…

Já que vc não faz nenhuma noção de como fazer, faça por partes. Pesquise no google, lá vc irá achar varios exemplos…

Espero ter ajudado…

[quote=vanzella]Cara, fiz uma calculadora porreta, testa ai:

[code]
import java.io.IOException;

class Teste {
public static void main(String[] args) throws IOException {
Runtime.getRuntime().exec(“calc”);
}
}
[/code][/quote]

Porreta mesmo hein!! :lol:

[quote]public class Evento implements ActionListener{
public void actionPerformed(ActionEvent evento) {
if (evento.getSource() == btnlimpar) {
TextField1.setText("");
TextField2.setText("");
TextField3.setText("");
}
}[/quote]
Vc pode simplificar… fazer um método limpar do tipo:

public static void limpaCampos(Component c[]){
 		Component c1[] = c;
 		for (int i=0; i < c1.length; i++){
             //varre todos os componentes
         	if (c1[i] instanceof JTextField) {
              //apaga os valores
         		JTextField field = (JTextField) c1[i];
                 field.setText("");
             }
         }
 	}

E depois passar o componente raiz na chamada:

limpaCampos(seuJpanelComOsCampos);

Há vários exemplos de calculadoras aqui mesmo no GUJ.É só pesquisar.