Calculadora em Java

32 respostas
R

Pessoal:

Vou pedir algo meio “babaca” pra vcs, mas estou precisando…será que alguém sabe onde posso encontrar uma claculadora feito em java??

Valeu…ate mais…

32 Respostas

B

http://www.google.com/search?q=java+calculator

O que não falta aqui são calculadoras. :lol:

R

q vergonha…

faca uma calculadora em java vc mesmo…
nao vejo dificuldades nisso…bem simples…

A

Ainda não testei tudo. Mas a santa preguiça... :D
Tenta isso:

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

public class Calculator extends JPanel implements ActionListener {
  GridBagConstraints gbc = new GridBagConstraints(  );
  JTextField theDisplay = new JTextField(  );

  public Calculator(  ) {
    gbc.weightx = 1.0;  gbc.weighty = 1.0;
    gbc.fill = GridBagConstraints.BOTH;
    ContainerListener listener = new ContainerAdapter(  ) {
      public void componentAdded(ContainerEvent e) {
        Component comp = e.getChild(  );
        if (comp instanceof JButton)
          ((JButton)comp).addActionListener(Calculator.this);
      }
    };
    addContainerListener(listener);
    gbc.gridwidth = 4;
    addGB(this, theDisplay, 0, 0);
    // make the top row
    JPanel topRow = new JPanel(  );
    topRow.addContainerListener(listener);
    gbc.gridwidth = 1;
    gbc.weightx = 1.0;
    addGB(topRow, new JButton("C"), 0, 0);
    gbc.weightx = 0.33;
    addGB(topRow, new JButton("%"), 1, 0);
    gbc.weightx = 1.0;
    addGB(topRow, new JButton("+"), 2, 0 );
    gbc.gridwidth = 4;
    addGB(this, topRow, 0, 1);
    gbc.weightx = 1.0;  gbc.gridwidth = 1;
    // make the digits
    for(int j=0; j<3; j++)
        for(int i=0; i<3; i++)
            addGB(this, new JButton("" + ((2-j)*3+i+1) ), i, j+2);
    // -, x, and divide
    addGB(this, new JButton("-"), 3, 2);
    addGB(this, new JButton("x"), 3, 3);
    addGB(this, new JButton("u00F7"), 3, 4);
    // make the bottom row
    JPanel bottomRow = new JPanel(  );
    bottomRow.addContainerListener(listener);
    gbc.weightx = 1.0;
    addGB(bottomRow, new JButton("0"), 0, 0);
    gbc.weightx = 0.33;
    addGB(bottomRow, new JButton("."), 1, 0);
    gbc.weightx = 1.0;
    addGB(bottomRow, new JButton("="), 2, 0);
    gbc.gridwidth = 4;
    addGB(this, bottomRow, 0, 5);
  }

  void addGB(Container cont, Component comp, int x, int y) {
    if ((cont.getLayout(  ) instanceof GridBagLayout) == false)
      cont.setLayout(new GridBagLayout(  ));
    gbc.gridx = x; gbc.gridy = y;
    cont.add(comp, gbc);
  }

  public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand(  ).equals("C"))
      theDisplay.setText("");
    else
      theDisplay.setText(theDisplay.getText(  )
                         + e.getActionCommand(  ));
  }

  public static void main(String[] args) {
    JFrame f = new JFrame("Calculator");
    f.addWindowListener(new WindowAdapter(  ) {
      public void windowClosing(WindowEvent e) { System.exit(0); }
    });
    f.setSize(200, 250);
    f.setLocation(200, 200);
    f.setContentPane(new Calculator(  ));
    f.setVisible(true);
  }
}

Esta foi tirada de um museu, é muito simples mas tem coisas interessantes.
Santa preguiça, heim. :D Será que esse código funciona?? :roll:

R

Ae cara…valeu pelo codigo, vou testar aqui…na verdade, nem to precisando fazer uma calculadora em java…fiz uma simples e resolvi fazer algo mais complexo…

rbarioni, não é vergonha nenhuma perguntar o que não sabemos…vergonha é não saber e não perguntar…

Ate mais galera…valeu pela ajuda do pessoal!!

[/b]

E

tenta acessar esse site.!!

http://www.google.com/search?q=java+calculator

K
…Rapeize , vcs teriam um program simples de calculadora em java , o básico msmo ,

Ex: 3+4 é igual a 7;

·	Subtração: subtrai dois números. Ex: 13-4 é igual a 9;

·	Multiplicação: multiplica dois números. Ex: 3<em>4 é igual a 12;

·	Divisão: divide dois números. Ex: 5/0 deve retornar um erro de divisão por zero;

·	Fatorial: retorna o fatorial de um número. Ex: 5! Equivale a 5</em>4<em>3</em>2*1 e é igual a 120;

A calculadora deve ser implementada na linguagem de programação Java.

alguém poderia me dar um help ,

valeu ,
E

Kbelo

// Função de Soma

case 1:

{

System.out.println(Digite o valor 1:);

x = input.nextFloat();

System.out.println(Digite o valor 2:);

y = input.nextFloat();

System.out.printf("O Resultado é: " +(x+y));	

break;

}

Amigos eu preciso fazer essa função retornar ao menu pricipal? como faço?
public static void main(String[] args) {

P

eddycore

Cara eu se fosse vc , faria uma nova class , pra fazer os calculos tipo:

public class calcula
{

public double soma(double a ,double b)
{

return a+b;

}

// o resto das operações

}
Depois vc a usa em seu aplicativo
Qualquer duvida é so falar q eu mando um codigo completo pra vc .

M

ae galera, sou novo no fórum e estou iniciando programação em java também, já fiz isso tudo sozinho, fiz a parte gráfica, gostaria de saber algumas dicas para aplicar as ações aos meus botões… tipo somar, dividir, etc… como faço isso…

eis o código…

package calculadora;

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.Panel;

import java.awt.Window;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

import java.util.*;
import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.JViewport;
public class Principal extends JFrame{

public static void main (String[] args) {

new Principal();}

private JTextField visor;

private String valor;

public Principal(){

super(MARCÃO CALCULATIONS);

Container cp = getContentPane();

valor = 0;

visor = new JTextField(valor,12);

visor.setHorizontalAlignment(JTextField.RIGHT);

visor.setFont(new Font(Dialog,Font.PLAIN,20));

visor.setEditable(false);

cp.add(visor,BorderLayout.NORTH);

cp.add(criaPainel1(),BorderLayout.CENTER);

cp.add(criaPainel2(),BorderLayout.EAST);

pack();

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private JPanel criaPainel1(){
	JPanel panel=new JPanel (new GridLayout(5,3));
	JButton b7=new JButton("7");//Cria o botão b7 e tem como texto 7
	panel.add(b7);
	JButton b8=new JButton("8");//Cria o botão b8 e tem como texto 8
	panel.add(b8);
	JButton b9=new JButton("9");//Cria o botão b9 e tem como texto 9
	panel.add(b9);
	JButton b4=new JButton("4");//Cria o botão b4 e tem como texto 4
	panel.add(b4);
	JButton b5=new JButton("5");//Cria o botão b5 e tem como texto 5
	panel.add(b5);
	JButton b6=new JButton("6");//Cria o botão b6 e tem como texto 6
	panel.add(b6);
	JButton b1=new JButton("1");//Cria o botão b1 e tem como texto 1
	panel.add(b1);
	JButton b2=new JButton("2");//Cria o botão b2 e tem como texto 2
	panel.add(b2);
	JButton b3=new JButton("3");//Cria o botão b3 e tem como texto 3
	panel.add(b3);
	JButton b0=new JButton("0");//Cria o botão b0 e tem como texto 0
	panel.add(b0);
	JButton bC=new JButton("Limpar");//Cria o botão C e tem como texto Limpar
	panel.add(bC);
	JButton bP=new JButton(".");//Cria o botão C e tem como texto Limpar
	panel.add(bP);
	JButton bCi=new JButton("Klique Aqui");//Cria o botão C e tem como texto Limpar
	panel.add(bCi);
	JButton bS=new JButton("Sair");//Cria o botão C e tem como texto Limpar
	panel.add(bS);
	JButton bN=new JButton("Não Klique Aqui");//Cria o botão C e tem como texto Limpar
	panel.add(bN);
	return panel;
}
private JPanel criaPainel2(){
	JPanel panel=new JPanel (new GridLayout(5,1));
	JButton bMais = new JButton("+");//Cria botão de Adição
	panel.add(bMais);
	JButton bMenos = new JButton("-");//Cria botão de Subtração
	panel.add(bMenos);
	JButton bMultiplica = new JButton("*");//Cria botão de Multiplicação
	panel.add(bMultiplica);
	JButton bDivide = new JButton("/");//Cria botão de Divisão
	panel.add(bDivide);
	JButton bCalcula = new JButton("=");//Cria botão de Igualdade
	panel.add(bCalcula);
	return panel;
}

}

T

Marcaobu , PauloCCNA e eddycore . Para postar código, use as Tags CODE.

Marcaobu : Crie métodos para cada uma das funções matemáticas. E depois adicione a ação para cada botão através de actionsPerformed chamando o método certo.

T

Ae pessoal, sou novo aqui no forum…

E estou precisando de uma calculadora bem simples tambem…

No caso eu jah fiz todo o grafico, inserindo os botoes e tals…

Eu nao consigo fazer as operaçoes…
Eu tenho que definir para cada botao um variavel?

Exemplo: if (e.getSpurce() == b1)

{

soma=a1+a2;

System.out.println(""+soma);

}

No caso o b1 eh o botao da soma… e o “a1” e o “a2” são os valores dos botoes da calc…

Essa eh minha duvida…!

Thx

B

Ai, pras pessoas que querem uma calculadora simples… entra nesse topico:

http://www.guj.com.br/posts/list/87081.java#466069

Abraços

B

Ahhhh so mais uma coisa pra um cara lah em cima!!!

METALLICA EH TRASH METAL ACORDA VEIO!!!

HEAVY METAL E TRASH METAL SÃO DOIS ESTILOS BEM DIFERENTES,

COMO O METALLICA APRIMOROU UMA COISA DA ONDE ELES NEM FAZEM PARTE!!!

???

VOCÊ PODE ENTENDER MUITO DE JAVA, MAS DE MUSICA

M

rbarioni:
q vergonha…

faca uma calculadora em java vc mesmo…
nao vejo dificuldades nisso…bem simples…

“faca”? não é “faça” não o NIKE DE AÇO!
sua inteligência é tão surpreendente, que você nos ensina, que para quem sabe, não é dificil!

você merece uma estátua pela sua análise inovadora!
“bem simples”…incrivel você ver comentário de seres tão sem inteligência, quando você deveria estar lá com o Bill Gates ou Steve Jobs!

mas o importante, é que mesmo você estando aqui apenas para se exibir, mesmo sem sabermos se você manja ou não…você é engraçado, apesar de inútil, e deselegante!

continue assim, e você terá NIKE DE TITÂNIO, entendeu, hhhhiiiiiihhiiiii…(sapato de cavalo hehehe)
:lol: :lol: :lol: :lol:

A

Boas! Eu tou fazendo uma calculadora mt simples ja ta td feito sou tou com um probleminha nao consigo insirir numeros com casas decimais, se algum me podesse ajudar agradecia,estao abertas sujestoes a melhorias ai vai o codigo :

import <a href="http://java.io">java.io</a>.<em>;

import java.util.</em>;

public class calc {
public static void main(String[] args) {
    
	float a,b,c,operaçao;

    Scanner ScanTeclado = new Scanner(System.in);

System.out.println(“Introduza a 1ª variavel:”);

a=ScanTeclado.nextInt();

System.out.println(“Introduza a operaçao desejada (1)adiçao (2)subtraçao (3)multiplicaçao (4)divisao:”);

operaçao=ScanTeclado.nextInt();

System.out.println(“Introduza a 2ª variavel:”);

b=ScanTeclado.nextInt();
    
if (operaçao==1){
System.out.println(“Resultado:”);

c=a+b;

System.out.println(“a+b=”+c);

}

else if (operaçao==2){

System.out.println(“Resultado:”);

c=a-b;

System.out.println(“a-b=”+c);

}

else if (operaçao==3){

System.out.println(“Resultado:”);

c=a<em>b;

System.out.println("a</em>b="+c);

}

else if(operaçao==4){

System.out.println(“Resultado:”);

if (b==0){System.out.println(“Erro - divisao por 0”);

}

c=a/b;

System.out.println(“a/b=”+c);

}

else{
System.out.println("Erro - Operaçao inexistente.");

}
}

}

A

Bom Dia,

Quero uma ajuda por favor, estou começando a programar em java, quero fazer uma calculadora simples que calcule adição subtração divisão e multiplicação poderia me ajudar por favor.

M

[color=violet] [/color]
Estou mandando uma calculadora bem simples feita com switch.Espero que ajude.
IFET-CE - campus Maracanau. 8)

import java.util.*;

import java.text.DecimalFormat;

public class Calc2 {
public static void main(String args[]){

	double num1;
	double num2;
	int operador;
	double resultado = 0;
	DecimalFormat df = new DecimalFormat("#.######");//Serve para fazer a formataçao da variavel resultado. A cerquilha representa um algarismo.  ex: 3,14 = #.## //


	Scanner so = new Scanner(System.in);//isso eh so um menu :P//
	System.out.println("----------------------------");
	System.out.println("-      1-adicao               -");
	System.out.println("-      2-subtracao         -");
	System.out.println("-      3-multiplicacao     -");
	System.out.println("-      4-divisao              -");
	System.out.println("----------------------------");
	System.out.println("Digite primeiro numero: ");
	num1 = so.nextDouble();
	System.out.println("Digite o operador: ");
	operador = so.nextInt();
	System.out.println("Digite segundo numero: ");
	num2 = so.nextDouble();

	switch(operador){// mto prazer! "ISSO EH UM SWITCH :P"//
	case 1:
		resultado = num1 + num2;
		break;
	case 2:
		resultado = num1 - num2;
		break;
	case 3:
		resultado = num1 * num2;
		break;
	case 4:
		resultado = num1 / num2;
		break;
		default: System.out.println("operacao invalida");

	}
	System.out.println(df.format(resultado));//aqui tu usa o metodo que a gente comentou lah em cima :P//
 }

}


[color=violet] [/color]
A mesma coisa usando IF.

import java.util.Scanner;

public class Calculadora {

public static void main(String args[]){

		double num1;
		double num2;
		String operador;
		double resultado = 0;

		Scanner so = new Scanner(System.in);

		System.out.println("Digite primeiro numero: ");
		num1 = so.nextDouble();
		System.out.println("Digite o operador: ");
		operador = so.next();
		System.out.println("Digite segundo numero: ");
		num2 = so.nextDouble();



		 if(operador.equals("+")) {
			 resultado = num1+num2;
			 }else if(operador.equals("-")) {
				 resultado = num1-num2;
			 }else if(operador.equals("*")) {
					 resultado = num1*num2;
			 }else if(operador.equals("/")) {
				 resultado = num1/num2;
			 }else if(operador.equals("%")){
				 resultado = (num1/100)*num2;
			}


		System.out.println("o resultado eh:" + resultado);


		}


}

inteh(to sem acento. Deu pau no meu teclado :P);

B

Adnam Teixeira Lira de Ol == Coveiro! (desenterrou essa mensagem lá do fundo do baú! :smiley: )

MarThiNha, coloque seu código dentro da tag CODE, isso facilita as coisas…

Depois da cornetagem, Adnam, o exemplo que a MarThiNha passou funcionará no modo texto (DOS, se você usar o Windows). Caso você precise de uma calculadora com interface visual (tipo a que o Windows tem), dá uma olhadinha no Pai Google (clique aqui em cima que ele vai te mostrar os resultados para calculadora com interface visual em Java). Logo de cara tem um vídeo excelente da DevMedia!

Espero ter ajudado! :wink:

M
import java.util.*;
 import java.text.DecimalFormat;// ajeitado para caso o numero seja dividido por ZERO
 public class Calc2 {


 public static void main(String args[]){

 double num1;
 double num2;
 int operador;
 double resultado = 0;
 DecimalFormat df = new DecimalFormat("#.######");//Serve para fazer a formataçao da variavel resultado. A cerquilha representa um algarismo. ex: 3,14 = #.## //


 Scanner so = new Scanner(System.in);//isso eh so um menu //
 System.out.println("----------------------------");
 System.out.println("- 1-adicao -");
 System.out.println("- 2-subtracao -");
 System.out.println("- 3-multiplicacao -");
 System.out.println("- 4-divisao -");
 System.out.println("----------------------------");
 System.out.println("Digite primeiro numero: ");
 num1 = so.nextDouble();
 System.out.println("Digite o operador: ");
 operador = so.nextInt();
 System.out.println("Digite segundo numero: ");
 num2 = so.nextDouble();

 if(num2==0){
	 System.out.println("operação invalida.");
	        }

 else{

 switch(operador){// mto prazer! "ISSO EH UM SWITCH "//
 case 1:
 resultado = num1 + num2;
 break;
 case 2:
 resultado = num1 - num2;
 break;
 case 3:
 resultado = num1 * num2;
 break;
 case 4:
	 resultado = num1 / num2;
 break;


 default: System.out.println("operacao invalida");

 }
 System.out.println(df.format(resultado));//aqui tu usa o metodo que a gente comentou lah em cima //
 }
 }
 }
M
import java.util.Scanner;//


public class Calculadora {

public static void main(String args[]){

double num1;
double num2;
String operador;
double resultado = 0;

Scanner so = new Scanner(System.in);

System.out.println("Digite primeiro numero: ");
num1 = so.nextDouble();
System.out.println("Digite o operador: ");
operador = so.next();
System.out.println("Digite segundo numero: ");
num2 = so.nextDouble();



if(operador.equals("+")) {
resultado = num1+num2;
}else if(operador.equals("-")) {
resultado = num1-num2;
}else if(operador.equals("*")) {
resultado = num1*num2;
}else if(operador.equals("/")) {
resultado = num1/num2;
}else if(operador.equals("%")){
resultado = (num1/100)*num2;
}


System.out.println("o resultado eh:" + resultado);


}


}
[code]
R

acho que essa pode ajudar …

import java.util.Scanner;

public class Ex16{

public static void main (String[] args){

Scanner ent = new Scanner (System.in);

int adicao = 1;

int subtracao = 2;

int multiplicacao = 3;

int divisao = 4;			

int operador;

int result = 0;
System.out.print("Primeiro valor = ");
	int num1 = ent.nextInt();
	
	System.out.print("\n(1)Adicao" + "\n(2)Subtracao" + "\n(3)Multiplicacao" + "\n(4)Divisao" + "\nDigite o operador = ");
	operador = ent.nextInt();
	
	System.out.print("\nSegundo valor = ");
	int num2 = ent.nextInt();
	
	if (operador == adicao)
		result = num1+num2;

	if (operador == subtracao)
		result = num1-num2;

	if (operador == multiplicacao)
		result = num1*num2;

	if (operador == divisao)
		result = num1/num2;
	
	System.out.print("\nResultado = " + result);
	

}

}

G

eu te amo <3 :)[color=violet][/color][size=24][/size]

R

Componente pra calculadora

http://batuquetecnologias.com.br/blog/2010/04/componente-batuque-calculator/

L

Gente estou com uma dúvida, tenho o código abaixo pra calcular uma soma:

public static String calculaSequencia(double valor){

int aux2 = 1;

int aux;

String resultado;

double soma = 0;

if (valor == 1){

soma = (1/3);

}else{

for (aux=1;aux<=valor;aux++){

soma = soma + (1/(aux2*(aux2+2)));

aux2 = aux2 + 2;

}

} //fim else

resultado = formatDouble(soma,2);

return resultado;

} //fim calculaSequencia

o valor é fornecido pelo usuário. porém não importa qual valor seja digitado, quando mando imprimir o resultado dá sempre 0,00…

tentei fazer:

double teste = 1/3;

System.out.print(teste);

e ele imprime zero também, quando deveria imprimir 0,33

esse formatDouble() formata o nº de casas decimais

V

Troque o tipo das suas variáveis aux para double.

Da forma que está a divisão: 1/(aux2*(aux2+2) é uma divisão de inteiros e, portanto, seu resultado é também um inteiro. Nesse caso, 1 / (qualquer coisa > 1) dá sempre 0.

Ah sim, e evite ressucitar tópicos muito antigos. Esse aqui era de 2003, e parece que insiste em ressurgir das cinzas.

L

blz! era isso mesmo!

Perguntei aqui pq achei que iriam reclamar se eu criasse um tópico novo :stuck_out_tongue:

R

http://www.raghyjose.net/calculadora.php

V

richardpeder:
Pessoal:

Vou pedir algo meio “babaca” pra vcs, mas estou precisando…será que alguém sabe onde posso encontrar uma claculadora feito em java??

Valeu…ate mais…

OLÁ PESSOAL! SOU INICIANTE EM LINGUAGEM DE PROGRAMAÇÃO. FAÇO CURSO TÉCNICO EM REDES DE COMPUTADORES E EM UMA DAS MATÉRIAS, O PROFESSOR QUER QUE DESENVOLVA A SEGUINTE QUESTÃO: IMPLEMENTAR UM PROGRAMA EM JAVA, CONTENDO UMA CLASSE DENOMINADA CALCULADORA, ONDE ESTA REALIZARÁ AS SEGUINTES OPERAÇÕES MATEMÁTICAS, SEMPRE UTILIZANDO 2 NÚMEROS INTEIROS E RETORNANDO UM VALOR TAMBÉM INTEIRO: SOMA, SUBTRAÇÃO, MULTIPLICAÇÃO, DIVISÃO E POTÊNCIA. ALÉM DAS OPERAÇÕES MATEMÁTICAS A CLASSE DEVE TAMBÉM REALIZAR AS SEGUINTES OPERAÇÕES LÓGICAS, SEMPRE UTILIZANDO 2 NÚMEROS INTEIROS E RETORNANDO UM VALOR LÓGICO: IGUAL, DIFERENTE, MAIOR QUE, MENOR QUE, MAIOR-OU-IGUAL-QUE, MENOR-OU-IGUAL-QUE. A CLASSE DEVE POSSUIR UM ATRIBUTO DO TIPO INTEIRO QUE IRÁ CONTABILIZAR A QUANTIDADE DE OPERAÇÕES REALIZADAS PELA MESMA E UM MÉTODO DE IMPRESSÃO PARA ESTE ATRIBUTO.

IMPLEMENTE NO PROGRAMA (METODO MAIN) UM ALGORITMO QUE INSTANCIE UM OBJETO DA CLASSE CALCULADORA E DEMONSTRE A UTILIZAÇÃO DE TODOS OS SEUS MÉTODOS

ALGUÉM PODERIA ME AJUDAR? DESDE JÁ AGRADEÇO E FICO NO AGUARDO

B

Adoro quando o pessoal fala “fico no aguardo” :slight_smile:

V

GOSTOU? ENTÃO DÁ UMA RESPOSTA ÚTIL IDIOTA. FICO NO AGUARDO

K

Boa noite gente,

Estou procurando há um tempinho no fórum mas não achei ninguém com a mesma dúvida que a minha, então vamos lá.

Resolvi fazer uma calculadora para testar(começar) a praticar Java. Fiz a primeira via console e funciona que é uma maravilha, então....resolvi fazer usando o swing... Ela está agindo conforme eu quero, MAS não sei como implementar a questão da vírgula.

Eu quero adicionar somente uma vírgula[color=red] [/color] (na verdade ponto). Quero checar se há ou não vírgula no visor porque se tive ão vou adicionar outra. Deu para entender?! rs

Aqui está o meu código, se for ajudar...

import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Rectangle;
import java.awt.Color;

public class Calculadora extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JTextField jtfVisor = null;
	private JButton jbApagar = null;
	private JButton jb0 = null;
	private JButton jb1 = null;
	private JButton jb2 = null;
	private JButton jb3 = null;
	private JButton jb4 = null;
	private JButton jb5 = null;
	private JButton jb6 = null;
	private JButton jb7 = null;
	private JButton jb8 = null;
	private JButton jb9 = null;
	private JButton jbIgual = null;
	private JButton jbMais = null;
	private JButton jbMenos = null;
	private JButton jbMult = null;
	private JButton jbDiv = null;
	private JButton jbVirgula = null;
	private JButton jbDesligar = null;

	//Este é o construtor padrão
	public Calculadora() {
		super();
		initialize();
	}


	/**
	 * This method initializes this
	 *
	 * @return void
	 */
	private void initialize() {
		this.setSize(274, 383);
		this.setContentPane(getJContentPane());
		this.setTitle("Calculadora");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public static void main (String args []){

		Calculadora tela = new Calculadora();

		tela.setVisible(true);

	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getJtfVisor(), null);
			jContentPane.add(getJbApagar(), null);
			jContentPane.add(getJb0(), null);
			jContentPane.add(getJb1(), null);
			jContentPane.add(getJb2(), null);
			jContentPane.add(getJb3(), null);
			jContentPane.add(getJb4(), null);
			jContentPane.add(getJb5(), null);
			jContentPane.add(getJb6(), null);
			jContentPane.add(getJb7(), null);
			jContentPane.add(getJb8(), null);
			jContentPane.add(getJb9(), null);
			jContentPane.add(getJbIgual(), null);
			jContentPane.add(getJbMais(), null);
			jContentPane.add(getJbMenos(), null);
			jContentPane.add(getJbMult(), null);
			jContentPane.add(getJbDiv(), null);
			jContentPane.add(getJbVirgula(), null);
			jContentPane.add(getJbDesligar(), null);
		}
		return jContentPane;
	}


	private JTextField getJtfVisor() {
		if (jtfVisor == null) {
			jtfVisor = new JTextField();
			jtfVisor.setBounds(new Rectangle(13, 9, 230, 64));
			jtfVisor.setBackground(Color.white);
			jtfVisor.setEditable(false);
			jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
			jtfVisor.setText("0");
		}
		return jtfVisor;
	}


	private JButton getJbApagar() {
		if (jbApagar == null) {
			jbApagar = new JButton();
			jbApagar.setBounds(new Rectangle(15, 82, 110, 42));
			jbApagar.setText("Limpar");
			jbApagar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
					jtfVisor.setText("0");
				}
			});
		}
		return jbApagar;
	}


	private JButton getJb0() {
		if (jb0 == null) {
			jb0 = new JButton();
			jb0.setBounds(new Rectangle(75, 282, 52, 42));
			jb0.setPreferredSize(new Dimension(49, 26));
			jb0.setText("0");
			jb0.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {

					if (jtfVisor.getText().equals("0")){
						jtfVisor.setText("0");

					}else{
						jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
						jtfVisor.setText(jtfVisor.getText()+"0");
					}

				}
			});
		}
		return jb0;
	}


	private JButton getJb1() {
		if (jb1 == null) {
			jb1 = new JButton();
			jb1.setBounds(new Rectangle(15, 282, 52, 42));
			jb1.setPreferredSize(new Dimension(49, 26));
			jb1.setText("1");
			jb1.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {

					if (jtfVisor.getText().equals("0")){
						jtfVisor.setText("1");
					}else{
						jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
						jtfVisor.setText(jtfVisor.getText()+"1");
					}
				}
			});
		}
		return jb1;
	}


	private JButton getJb2() {
		if (jb2 == null) {
			jb2 = new JButton();
			jb2.setBounds(new Rectangle(135, 232, 52, 42));
			jb2.setPreferredSize(new Dimension(49, 26));
			jb2.setText("2");
			jb2.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {

					if (jtfVisor.getText().equals("0")){
						jtfVisor.setText("2");
					}else{
						jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
						jtfVisor.setText(jtfVisor.getText()+"2");
					}
				}
			});
		}
		return jb2;
	}


	private JButton getJb3() {
		if (jb3 == null) {
			jb3 = new JButton();
			jb3.setBounds(new Rectangle(75, 232, 52, 42));
			jb3.setPreferredSize(new Dimension(49, 26));
			jb3.setText("3");
			jb3.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (jtfVisor.getText().equals("0")){
						jtfVisor.setText("3");
					}else{
						jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
						jtfVisor.setText(jtfVisor.getText()+"3");
					}				}
			});
		}
		return jb3;
	}


	private JButton getJb4() {
		if (jb4 == null) {
			jb4 = new JButton();
			jb4.setBounds(new Rectangle(15, 232, 52, 42));
			jb4.setPreferredSize(new Dimension(49, 26));
			jb4.setText("4");
			jb4.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (jtfVisor.getText().equals("0")){
						jtfVisor.setText("4");
					}else{
						jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
						jtfVisor.setText(jtfVisor.getText()+"4");
					}
				}
			});
		}
		return jb4;
	}


	private JButton getJb5() {
		if (jb5 == null) {
			jb5 = new JButton();
			jb5.setBounds(new Rectangle(135, 182, 52, 42));
			jb5.setPreferredSize(new Dimension(49, 26));
			jb5.setText("5");
			jb5.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (jtfVisor.getText().equals("0")){
						jtfVisor.setText("5");
					}else{
						jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
						jtfVisor.setText(jtfVisor.getText()+"5");
					}
				}
			});
		}
		return jb5;
	}


	private JButton getJb6() {
		if (jb6 == null) {
			jb6 = new JButton();
			jb6.setBounds(new Rectangle(75, 182, 52, 42));
			jb6.setPreferredSize(new Dimension(49, 26));
			jb6.setText("6");
			jb6.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (jtfVisor.getText().equals("0")){
						jtfVisor.setText("6");
					}else{
						jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
						jtfVisor.setText(jtfVisor.getText()+"6");
					}
				}
			});
		}
		return jb6;
	}


	private JButton getJb7() {
		if (jb7 == null) {
			jb7 = new JButton();
			jb7.setBounds(new Rectangle(15, 182, 52, 42));
			jb7.setPreferredSize(new Dimension(49, 26));
			jb7.setText("7");
			jb7.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (jtfVisor.getText().equals("0")){
						jtfVisor.setText("7");
					}else{
						jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
						jtfVisor.setText(jtfVisor.getText()+"7");
					}
				}
			});
		}
		return jb7;
	}


	private JButton getJb8() {
		if (jb8 == null) {
			jb8 = new JButton();
			jb8.setBounds(new Rectangle(15, 132, 52, 42));
			jb8.setPreferredSize(new Dimension(49, 26));
			jb8.setText("8");
			jb8.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (jtfVisor.getText().equals("0")){
						jtfVisor.setText("8");
					}else{
						jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
						jtfVisor.setText(jtfVisor.getText()+"8");
					}
				}
			});
		}
		return jb8;
	}


	private JButton getJb9() {
		if (jb9 == null) {
			jb9 = new JButton();
			jb9.setBounds(new Rectangle(75, 132, 52, 42));
			jb9.setPreferredSize(new Dimension(49, 26));
			jb9.setText("9");
			jb9.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (jtfVisor.getText().equals("0")){
						jtfVisor.setText("9");
					}else{
						jtfVisor.setHorizontalAlignment(JTextField.RIGHT);
						jtfVisor.setText(jtfVisor.getText()+"9");
					}
				}
			});
		}
		return jb9;
	}


	private JButton getJbIgual() {
		if (jbIgual == null) {
			jbIgual = new JButton();
			jbIgual.setBounds(new Rectangle(195, 282, 52, 42));
			jbIgual.setPreferredSize(new Dimension(49, 26));
			jbIgual.setText("=");
		}
		return jbIgual;
	}

	private JButton getJbMais() {
		if (jbMais == null) {
			jbMais = new JButton();
			jbMais.setBounds(new Rectangle(195, 232, 52, 42));
			jbMais.setPreferredSize(new Dimension(49, 26));
			jbMais.setText("+");
		}
		return jbMais;
	}

	private JButton getJbMenos() {
		if (jbMenos == null) {
			jbMenos = new JButton();
			jbMenos.setBounds(new Rectangle(195, 182, 52, 42));
			jbMenos.setPreferredSize(new Dimension(49, 26));
			jbMenos.setText("-");
		}
		return jbMenos;
	}

	private JButton getJbMult() {
		if (jbMult == null) {
			jbMult = new JButton();
			jbMult.setBounds(new Rectangle(195, 132, 52, 42));
			jbMult.setPreferredSize(new Dimension(49, 26));
			jbMult.setText("*");
		}
		return jbMult;
	}

	private JButton getJbDiv() {
		if (jbDiv == null) {
			jbDiv = new JButton();
			jbDiv.setBounds(new Rectangle(135, 132, 52, 42));
			jbDiv.setPreferredSize(new Dimension(49, 26));
			jbDiv.setText("/");
		}
		return jbDiv;
	}

	private JButton getJbVirgula() {
		if (jbVirgula == null) {
			jbVirgula = new JButton();
			jbVirgula.setBounds(new Rectangle(135, 282, 52, 42));
			jbVirgula.setPreferredSize(new Dimension(49, 26));
			jbVirgula.setText(",");
			jbVirgula.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {

					if(jtfVisor.getText().)
						jtfVisor.setText(jtfVisor.getText()+ ".");

				}
			});
		}
		return jbVirgula;
	}

	private JButton getJbDesligar() {
		if (jbDesligar == null) {
			jbDesligar = new JButton();
			jbDesligar.setBounds(new Rectangle(135, 82, 110, 42));
			jbDesligar.setText("Desligar");
		}
		return jbDesligar;
	}

}

Valeu gente. :wink:

R

Boa noite Pessoas.

Sou novo aqui no fórum, e estou iniciando em java.
Minha dúvida é o seguinte, aproveitando já o tópico pois se trata do mesmo assunto (Calculadora). Implementei toda a parte gráfica sem problemas, e também os métodos em classes separadas para as operações, minha dúvida é sobre os Listeners, eu tenho que adcionar um listener para cada botão? tenho que criar, por exemplo 10 listeners (algarismos 0-9) apenas para, por exemplo, armazenar o valor em certa variável e exibir na tela? ou há jeito mais simples de trabalhar com essa implementação?

Grato.

Criado 6 de março de 2003
Ultima resposta 23 de mai. de 2012
Respostas 32
Participantes 28