Calculadora em java

9 respostas
D

:roll:Olá pessoal! alguém poderia explicar o código dessa calculadora feito em java? o que foi usado é para que? ? vlew :arrow:

calculator.java

import java.awt.<em>;

import java.lang.</em>;

import java.awt.event.<em>;

import java.applet.Applet;

import java.awt.datatransfer.</em>;
public class calculator extends Applet

{

public void init()

{

calf calWindow = new calf(Java Calculator);

calWindow.setSize(200, 250);

calWindow.setVisible(true);

calWindow.setResizable(false);

}

}
class calf extends Frame implements WindowListener, ActionListener, KeyListener

{

String command, copy, arg, chg, txt;

double result;

String number = 123456789.0;

String operator = /*-+=;

CopyPaste cp;
Menu Menu1;

MenuBar Menubar1;

MenuItem menuitem1, menuitem2, menuitem3;

TextField entrytext;

Button numbut []; //Number buttons

Button combut []; //Command buttons

Panel companel, numpanel;
public static void main(String[] arguments)

{

calf calWindow = new calf(Java Calculator);

calWindow.setSize(200, 250);

calWindow.setVisible(true);

}
public calf(String title)

{

super(title);

addWindowListener(this);

addKeyListener(this);

cp = new CopyPaste();
//cp.clip = getToolkit().getSystemClipboard();

setBackground(Color.blue);

setLayout(new GridLayout(1, 1));

Menubar1 = new MenuBar();

Menu1 = new Menu(“Edit”);

menuitem1 = new MenuItem("&Copy");

Menu1.add(menuitem1);

menuitem1.addActionListener(this);

menuitem2 = new MenuItem("&Paste");

Menu1.add(menuitem2);

menuitem2.addActionListener(this);

menuitem3 = new MenuItem("&Exit");

Menu1.add(menuitem3);

menuitem3.addActionListener(this);

Menubar1.add(Menu1);

setMenuBar(Menubar1);

GridBagLayout gridbag = new GridBagLayout();

GridBagConstraints constraints = new GridBagConstraints();

setLayout(gridbag);

constraints.weighty = 1;

constraints.weightx = 1;

<a href="//constraints.fill">//constraints.fill</a> = GridBagConstraints.BOTH;

Font bigFont = new Font(“Courier”,Font.BOLD, 14);

entrytext = new TextField(20);

constraints.gridwidth = GridBagConstraints.REMAINDER;

gridbag.setConstraints(entrytext,constraints);

add(entrytext);

entrytext.setFont(bigFont);

entrytext.setEditable(false);

entrytext.setForeground(Color.black);

entrytext.setBackground(Color.white);

entrytext.addKeyListener(this);

entrytext.requestFocus();
constraints.weighty = 1;

constraints.weightx = 1;

companel = new Panel();

constraints.gridwidth = GridBagConstraints.REMAINDER;
gridbag.setConstraints(companel,constraints);
/*
Command GridLayout

| Back | CE | C |

*/

companel.setLayout(new GridLayout(1,3,5,5));

// Create the buttons

Font comsFont = new Font(Arial,Font.BOLD, 12);

String[] coms = { Back,CE,C

};

combut = new Button[3];

for (int i=0; i<=2; i++)

{

combut[i] = new Button(coms[i]);

companel.add(combut[i]);

combut[i].addActionListener(this);

combut[i].setFont(comsFont);

combut[i].addKeyListener(this);
}

add(companel);

companel.addKeyListener(this);

constraints.weighty = 4;
constraints.weightx = 1;
numpanel = new Panel();
constraints.gridwidth = GridBagConstraints.REMAINDER;
gridbag.setConstraints(numpanel,constraints);
/*
Number GridLayout

| 7 | 8 | 9 | / |sqr|

| 4 | 5 | 6 | * | % |

| 1 | 2 | 3 | - |1/x|

| 0 |+/-| . | + | = |

<em>/

numpanel.setLayout(new GridLayout(4,5,3,3));

// Create the buttons

String[] nums = { 7,8,9,"/",sqrt,

4,5,6,"</em>","%",

1,2,3,"-",1/x,

0,"+/-",".","+","="

};

numbut = new Button[20];

for (int i=0; i<=19; i++)

{

numbut[i] = new Button(nums[i]);

numpanel.add(numbut[i]);

numbut[i].addActionListener(this);

numbut[i].addKeyListener(this);

if(operator.indexOf(nums[i]) > -1)

{

numbut[i].setForeground(Color.red);

}

else

{

numbut[i].setForeground(Color.blue);

}
}

add(numpanel);

numpanel.addKeyListener(this);
//initialize global variables.

command = +;

copy = “”;

chg = N;

txt = “”;

arg = “”;

result = 0;

}
public void actionPerformed(ActionEvent e)

{

if (e.getActionCommand() == &Exit)

{

setVisible(false);

System.exit(0);

}

else if (e.getActionCommand() == &Copy)

{

String txt = entrytext.getText();

if (txt != null)

{

cp.doCopy(txt);

}

}

else if (e.getActionCommand() == &Paste)

{

cp.doPaste();

if (cp.ctxt != null)

{

entrytext.setText(cp.ctxt);

}

}

else if (e.getActionCommand() == Back) back_space();

else if (e.getActionCommand() == CE) entrytext.setText("");

else if (e.getActionCommand() == C)

{

result = 0;

command = +;

entrytext.setText("");

}

else

{

arg = e.getActionCommand();

txt = entrytext.getText();

if(number.indexOf(arg) > -1)

{

if (chg == Y) txt = “”;

txt = txt + arg;

entrytext.setText(txt);

chg = N;

}

else check_entry();

}

}
public void keyPressed(KeyEvent k){}

public void keyReleased(KeyEvent k)

{

int ikey = k.getKeyCode();

if (ikey == 127) entrytext.setText("");

}

public void keyTyped(KeyEvent k)

{

int ikey = k.getKeyChar();

if (ikey == 8) back_space();

else if (ikey == 10)

{

arg = =;

txt = entrytext.getText();

display_ans();

}

else

{

txt = entrytext.getText();

char ckey = (char) ikey;

arg = String.valueOf(ckey);

if(number.indexOf(arg) > -1)

{

if (chg == Y) txt = “”;

txt = txt + arg;

entrytext.setText(txt);

chg = N;

}

else check_entry();

}

}
public void back_space()

{

txt = entrytext.getText();

int l = txt.length();

if (l > 0)

{

txt = txt.substring(0,l-1);

entrytext.setText(txt);

}

}

public void display_ans()

{

entrytext.setText(compute_tot(txt,command));

chg = Y;

command = +;

result = 0;

}

public void check_entry()

{

if(arg.equals("=")) display_ans();

else if(arg.equals("%"))

{

entrytext.setText(compute_tot(txt,arg));

chg = Y;

}

else if(operator.indexOf(arg) > -1)

{

entrytext.setText(compute_tot(txt,command));

command = arg;

chg = Y;

}

else if(arg == sqrt)

{

entrytext.setText(compute_tot(txt,arg));

chg = Y;

command = “”;

}

else if(arg == +/-)

{

Double tnum = Double.valueOf(txt);

double num = tnum.doubleValue();

num = num * -1;

entrytext.setText(String.valueOf(num));

chg = Y;

}

else if(arg == 1/x)

{

entrytext.setText(compute_tot(txt,arg));

chg = Y;

}

}

String compute_tot(String t, String c)

{

Double tnum = Double.valueOf(t);

double num = tnum.doubleValue();
if (c.equals("+")) result = result + num;

else if (c.equals("-")) result = result - num;

else if (c.equals("*")) result = result * num;

else if (c.equals("/")) result = result / num;

else if (c.equals("%")) result = num / 100;

else if (c.equals("+/-")) result = num * -1;

else if (c.equals(1/x)) result = 1.000 / num;

else if (c.equals(sqrt)) result = Math.sqrt(num);

return String.valueOf(result);

}
public void windowClosing(WindowEvent we)

{

setVisible(false);

System.exit(0);

}

public void windowClosed(WindowEvent we) {}

public void windowDeiconified(WindowEvent we) {}

public void windowIconified(WindowEvent we) {}

public void windowOpened(WindowEvent we) {}

public void windowActivated(WindowEvent we) {}

public void windowDeactivated(WindowEvent we) {}

}

class CopyPaste implements ClipboardOwner
{

Clipboard clip;
String ctxt;

CopyPaste()

{

clip = new Clipboard(clip);

ctxt = null;

}
void doCopy(String txt)

{

StringSelection trans = new StringSelection(txt);

clip.setContents(trans, this);

}
void doPaste()

{

ctxt = null;

Transferable toPaste = clip.getContents(this);

if (toPaste != null)

{

try

{

ctxt = (String)toPaste.getTransferData(

DataFlavor.stringFlavor);

}

catch (Exception e)

{

System.out.println("Error – " + e.toString());

}

}

}

public void lostOwnership(Clipboard clip,

Transferable contents) {

}

}

9 Respostas

alucardeck

claro…

o dia q vc postar com a TAG Code…

e tiver menos cara de pau de pedir algo assim sem o minimo esforço de tentar entender sozinho… :evil:

Ohh, i see! Stones from the sky ! :roll:

dlrodrigues

pois é poderia ler as regras do forum antes de postar algo, se deve usar as tags de code para postar trechos de codigos fontes. e outra coisa, ja tentou entender o codigo?!?!?! é mais facil perguntar suas duvidas sobre algum trecho do codigo do que pedir a alguem te explicar todo o codigo sem vc ter tentado antes.

D

Quem disse que eu nao entendi o codigo todo? eu quero e ter uma visao geral dele mas com a opiniao de outra pessoa!!!
ALem de sanar minhas duvidas eu quero saber qual evento faz com que os numeros apareçam quando digito no teclado???

alucardeck

e vc ainda nao entendeu q pra isso vc precisar por a TAG CODE ?

RobsonFagundes

djstone:
Quem disse que eu nao entendi o codigo todo? eu quero e ter uma visao geral dele mas com a opiniao de outra pessoa!!!
ALem de sanar minhas duvidas eu quero saber qual evento faz com que os numeros apareçam quando digito no teclado???

:smiley: :smiley: :smiley: djstone tem certeza q vc entendeu o codigo…
sera q vc ao menos o leu ate o fim, o mais certo eh pedir pra quem desenvolveu esse codigo
ja que vc quer a opiniao de outra pessoa hehehehehhehe
t+

ArleyRueda

Não precisam esculachar o cara! a final quem aqui o todo poderoso sabidão heim! todo mundo tem algo a aprender!
se não vão acrescentar ao cara então deixem em paz! 8)

Solonbra

Cara usa a tag para code

(code)
insira os códigos
(/code)

só precisa substituis os parentes pelo conchetes!
Dá uma lida nas regras do forum… ajuda muito… alguma das coisa que procura pode ja estar listada com link rápido para a página!
Tem uns tutoriais tb…

deniswsrosa

ArleyRueda:
Não precisam esculachar o cara! a final quem aqui o todo poderoso sabidão heim! todo mundo tem algo a aprender!
se não vão acrescentar ao cara então deixem em paz! 8)

Claro! por isso que tah cheio de Troll no forum, ficam alimentando-os. Se nao puxar a orelha nao aprende, digo por experiencia propria, quando comecei no guj tb tive as minhas perolas. Mas naquela epoca o pessoal era bem maid rigido.

Vinny

Antes de Tudo Poste o Codigo com o TAG_CODE

Se vc intendeu alguma posta ai, assim nos vamos te ajudando!

Criado 28 de agosto de 2008
Ultima resposta 25 de jun. de 2009
Respostas 9
Participantes 8