1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Calculadora de múltiplas operações

Olá, eu estou fazendo uma calculadora que faz múltiplos cálculos, ela possui nove botoes com números que adicionam um número a uma variável, logo após fiz um botão que deveria fazer a operação de soma, só que eu queria fazer uma calculadora que realiza múltiplos cálculos como a do windows exemplo: 1+2-1x4=8, e eu possuo somente duas variáveis para armazenar os números inseridos com os botões e uma para armazenar a palavra somar quando for clicado no botão somar e depois eu verifico qual operação foi solicitada, só que eu não posso fazer várias operações, alguém poderia me ajudar?

EDITADO:

MEU CODIGO:

package Pacote;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Main extends JFrame implements ActionListener {
    int resultado;
    String r;
    String s2 = "";
    String operador = "";
    int numero1;
    int numero2;
    String s = "";
    int numero;
    JPanel painel = new JPanel(new FlowLayout());
    JPanel painel2 = new JPanel();
    JButton subtrair = new JButton("-");
    JButton somar = new JButton("+");
    JButton um = new JButton("1");
    JButton dois = new JButton("2");
    JButton tres = new JButton("3");
    JButton quatro = new JButton("4");
    JButton cinco = new JButton("5");
    JButton seis = new JButton("6");
    JButton sete = new JButton("7");
    JButton oito = new JButton("8");
    JButton nove = new JButton("9");
    Font fontebotoes = new Font("Arial",Font.BOLD,30);
    JLabel calculado = new JLabel("Teste");
    Main(){
      painel.add(calculado);
      calculado.setFont(fontebotoes);

      add(painel);
      add(painel2);
      painel2.setSize(300,400);

      GridBagConstraints cons = new GridBagConstraints();  
      GridBagLayout layout = new GridBagLayout(); 

      painel2.setLayout(layout);
      cons.ipadx = 20;
      cons.ipady = 20;

      subtrair.setFont(fontebotoes);
      somar.setFont(fontebotoes);
      um.setFont(fontebotoes);
      dois.setFont(fontebotoes);
      tres.setFont(fontebotoes);
      quatro.setFont(fontebotoes);
      cinco.setFont(fontebotoes);
      seis.setFont(fontebotoes);
      sete.setFont(fontebotoes);
      oito.setFont(fontebotoes);
      nove.setFont(fontebotoes);

      um.addActionListener(this);
      dois.addActionListener(this);
      tres.addActionListener(this);
      quatro.addActionListener(this);
      cinco.addActionListener(this);
      seis.addActionListener(this);
      sete.addActionListener(this);
      oito.addActionListener(this);
      nove.addActionListener(this);

      cons.gridx = 0;
      cons.gridy = 0;
      painel2.add(um, cons);
      cons.gridx = 1;
      cons.gridy = 0;
      painel2.add(dois,cons);
      cons.gridx = 2;
      cons.gridy = 0;
      painel2.add(tres,cons);
      cons.gridx = 0;
      cons.gridy = 1;
      painel2.add(quatro,cons);
      cons.gridx = 1;
      cons.gridy = 1;
      painel2.add(cinco,cons);
      cons.gridx = 2;
      cons.gridy = 1;
      painel2.add(seis,cons);
      cons.gridx = 0;
      cons.gridy = 2;
      painel2.add(sete,cons);
      cons.gridx = 1;
      cons.gridy = 2;
      painel2.add(oito,cons);
      cons.gridx = 2;
      cons.gridy = 2;
      painel2.add(nove,cons);
      cons.gridx = 3;
      cons.gridy = 0;
      painel2.add(somar,cons);
      cons.gridx = 3;
      cons.gridy = 1;
      painel2.add(subtrair,cons);

      setLayout(new GridLayout(2,1));
      setTitle("Calculadora");  
      setSize(300,400);  

      setLocationRelativeTo(null);
      setResizable(false);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setVisible(true);
    }
    public void actionPerformed(ActionEvent evento) {
               if(evento.getSource()==um){
                   s+="1";
                   numero=Integer.parseInt(s);
                   System.out.println(numero);
               }
               if(evento.getSource()==dois){
                s+="2";
                numero=Integer.parseInt(s);
                System.out.println(numero);
               }
               if(evento.getSource()==tres){
                    s+="3";
                 numero=Integer.parseInt(s);
                 System.out.println(numero);
                 }
               if(evento.getSource()==quatro){
                    s+="4";
                 numero=Integer.parseInt(s);
                 System.out.println(numero);
                   }
               if(evento.getSource()==cinco){
                    s+="5";
                 numero=Integer.parseInt(s);
                 System.out.println(numero);
                       }
               if(evento.getSource()==seis){
                    s+="6";
                 numero=Integer.parseInt(s);
                 System.out.println(numero);
                   }
               if(evento.getSource()==sete){
                    s+="2";
                 numero=Integer.parseInt(s);
                 System.out.println(numero);
                   }
               if(evento.getSource()==oito){
                    s+="8";
                 numero=Integer.parseInt(s);
                 System.out.println(numero);
                       } 
               if(evento.getSource()==nove){
                    s+="9";
                 numero=Integer.parseInt(s);
                 System.out.println(numero);
                   }
               if(evento.getSource()==somar){
                   numero1 = numero;
                   numero = (Integer) null;
                   operador = "somar";
               }               

    }
 public static void main(String[]args){
     new Main();
 }
}
  • Você pode dar uma olhada no artigo que coloquei na minha resposta e adaptá-lo a sua necessidade. Como Kattegat disse, o pessoal não vai lhe dar o código fonte pronto, você deve criar a sua solução com base nas respostas.

    Cristian Henrique   30 de set de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java java8 swing interface windows ou faça a sua própria pergunta.