/*
* Calculadora.java
*
* Created on 10 de Janeiro de 2004, 02:45
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package testes;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
class Calculadora extends JFrame implements ActionListener{
JButton espaco=new JButton("");
JButton espaco2=new JButton("");
JButton espaco3=new JButton("");
JButton mais=new JButton("+");
JButton menos=new JButton("-");
JButton vezes=new JButton("*");
JButton dividir=new JButton("/");
JButton zero=new JButton("0");
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");
JButton igual=new JButton("=");
JButton CE=new JButton("CE");
//static double num1,num2,numeros,result;
Scanner numeros = new Scanner(System.in);
String sinal;
int num1;
int num2;
int result;
JTextField mostrador;
JPanel calc;
public Calculadora(){
setTitle("calculadora guj");
setResizable(true);
setSize(600, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setBackground(Color.yellow);
mais.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
menos.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
vezes.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
dividir.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
zero.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
um.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
dois.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
tres.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
quatro.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
cinco.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
seis.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
sete.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
oito.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
nove.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
igual.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
calc= new JPanel();
calc.setLayout( new GridLayout(5,3));
mostrador= new JTextField("");
mostrador.setSize(100,20);
mostrador.setFont (new Font ("Sans Serif", Font.BOLD,28 ) );
calc.add(mostrador);
calc.add(um);
calc.add(dois);
calc.add(tres);
calc.add(quatro);
calc.add(cinco);
calc.add(seis);
calc.add(sete);
calc.add(oito);
calc.add(nove);
calc.add(zero);
calc.add(CE);
calc.add(mais);
calc.add(menos);
calc.add(vezes);
calc.add(dividir);
calc.add(igual);
calc.add(espaco);
calc.add(espaco2);
calc.add(espaco3);
add(calc);
CE.addActionListener(this);
mais.addActionListener(this);
menos.addActionListener(this);
vezes.addActionListener(this);
dividir.addActionListener(this);
igual.addActionListener(this);
zero.addActionListener(this);
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);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == CE) {
CE();
}
if (e.getSource() == mais) {
operMais();
}
if (e.getSource() == menos) {
operMenos();
}
if (e.getSource() == dividir) {
operDiv();
}
if (e.getSource() == vezes) {
operVezes();
}
if (e.getSource() == zero) {
String apice= mostrador.getText();
String vaiLa=apice+"0";
mostrador.setText(vaiLa);
}
if (e.getSource() == um) {
String apice2= mostrador.getText();
String vaiLa2=apice2+"1";
mostrador.setText(vaiLa2);
}
if (e.getSource() == dois) {
String apice3= mostrador.getText();
String vaiLa3=apice3+"2";
mostrador.setText(vaiLa3);
}
if (e.getSource() == tres) {
String apice4= mostrador.getText();
String vaiLa4=apice4+"3";
mostrador.setText(vaiLa4);
}
if (e.getSource() == quatro) {
String apice5= mostrador.getText();
String vaiLa5=apice5+"4";
mostrador.setText(vaiLa5);
}
if (e.getSource() == cinco) {
String apice6= mostrador.getText();
String vaiLa6=apice6+"5";
mostrador.setText(vaiLa6);
}
if (e.getSource() == seis) {
String apice7= mostrador.getText();
String vaiLa7=apice7+"6";
mostrador.setText(vaiLa7);
}
if (e.getSource() == sete) {
String apice8= mostrador.getText();
String vaiLa8=apice8+"7";
mostrador.setText(vaiLa8);
}
if (e.getSource() == oito) {
String apice9= mostrador.getText();
String vaiLa9=apice9+"8";
mostrador.setText(vaiLa9);
}
if (e.getSource() == nove) {
String apice10= mostrador.getText();
String vaiLa10=apice10+"9";
mostrador.setText(vaiLa10);
}
if (e.getSource() == igual) {
igual();
}
// String apice= "";
// String vaiLa="";
}
public void um(){
mostrador.setText("1");
}
public void igual() {
if (sinal.equals("+")) {
// mostrador.setText("");
num2=Integer.parseInt(mostrador.getText());
result=num1+num2;
// mostrador.setText("");
mostrador.setText(""+result);
num1=0;
num2=0;
}
if (sinal.equals("-")) {
num2=Integer.parseInt(mostrador.getText());
result=num1-num2;
mostrador.setText(""+result);
num1=0;
num2=0;
}
if (sinal.equals("*")) {
num2=Integer.parseInt(mostrador.getText());
result=num1*num2;
mostrador.setText(""+result);
num1=0;
num2=0;
}
if (sinal.equals("/")) {
num2=Integer.parseInt(mostrador.getText());
result=num1/num2;
mostrador.setText(""+result);
num1=0;
num2=0;
}
}
public void operMais(){
num1= Integer.parseInt(mostrador.getText());
sinal="+";
mostrador.setText("");
}
public void operMenos(){
num1= Integer.parseInt(mostrador.getText());
sinal="-";
mostrador.setText("");
}
public void operVezes(){
num1= Integer.parseInt(mostrador.getText());
sinal="*";
mostrador.setText("");
}
public void operDiv(){
num1= Integer.parseInt(mostrador.getText());
sinal="/";
mostrador.setText("");
}
public void CE() {
mostrador.setText("");
}
public static void main(String args[]){
new Calculadora().setVisible(true);
}
}
Fiz a calculadora, da uma olhada
9 Respostas
a ficou legal… você fez isso para treinar?
uma edica… você está mostrando o resultado da divisão como um inteiro, divida 3/2 por exemplo…não tem números fracionarios…
ai no seu jar tem também um outro Main.java, pelo que eu dei uma olhada ele em um loop converte valores de celsius para farenheit, alguma coisa assim…
Cara, uma dúvida, eu sou novato em JAva e finalmente consegui ler um código inteiro, no caso o seu. rs
Você não acharia melhor dividir todo esse código em classes diferentes? Seria isso possível?
Por exemplo, colocar os operadores em uma outra classe.
É possível fazer isso?
Valeu, abraço.
Ficou legal!
continue assim!

vlw
Legal… mas pode ficar bem mais orientado a objeto e mais simples.
Algo que ja facilitaria é ter um método tipo (Nao é o exemplo de OO)
private JButton createButton(String text){
JButton button = new JButton(text);
button.addActionListener(this);//Desde que esteja na mesma classe
button.setFont(new Font ("Sans Serif", Font.BOLD,28));
}
E na hora de criar os botoes invés de ter new em todos depois setFont em todos depois addAcitonListener em todos voce faria apenas
JButton mais= createButton("+");
JButton menos=createButton("-");
JButton vezes=createButton("*");
JButton dividir=createButton("/");
JButton zero=createButton("0");
JButton um=createButton("1");
JButton dois=createButton("2");
JButton tres=createButton("3");
JButton quatro=createButton("4");
JButton cinco=createButton("5");
JButton seis=createButton("6");
JButton sete=createButton("7");
JButton oito=createButton("8");
JButton nove=createButton("9");
JButton igual=createButton("=");
Legal… mas pode ficar bem mais orientado a objeto e mais simples.Algo que ja facilitaria é ter um método tipo (Nao é o exemplo de OO)
private JButton createButton(String text){ JButton button = new JButton(text); button.addActionListener(this);//Desde que esteja na mesma classe button.setFont(new Font ("Sans Serif", Font.BOLD,28)); }E na hora de criar os botoes invés de ter new em todos depois setFont em todos depois addAcitonListener em todos voce faria apenas
JButton mais= createButton("+"); JButton menos=createButton("-"); JButton vezes=createButton("*"); JButton dividir=createButton("/"); JButton zero=createButton("0"); JButton um=createButton("1"); JButton dois=createButton("2"); JButton tres=createButton("3"); JButton quatro=createButton("4"); JButton cinco=createButton("5"); JButton seis=createButton("6"); JButton sete=createButton("7"); JButton oito=createButton("8"); JButton nove=createButton("9"); JButton igual=createButton("=");
Rs, respondeu a minha pergunta. Valeu.
A calculadora está legal, mas o actionListener está longe de ser a melhor maneira de tratar os botões. Dá uma olhada nesse tópico aqui:
http://www.guj.com.br/posts/list/140986.java
Vai ficar ainda mais legal. 
Sem falar que a fonte vc pode criar um Objeto só e adicionar para todos, consume menos recurso de memoria.
A calculadora está legal, mas o actionListener está longe de ser a melhor maneira de tratar os botões. Dá uma olhada nesse tópico aqui:
http://www.guj.com.br/posts/list/140986.javaVai ficar ainda mais legal. :)
eeeeeeeeee
só porque foi você quem fez!rsrsrs
mais esta legal mesmo!
vlw
abs
Legal cara! Um clássico na faculdade!!