google

Sabtu, 27 Desember 2008

Calculator

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



/* 25Oct2005: Designed and programmed by jfernandez.ph */
/* 13Nov2005: Designed and programmed by jfernandez.ph */



public class Calculator implements ActionListener{


char o;
int ctr=0;
String value="", cv="", oBtn;
Double answer, v1, v2;
Double NumberConverted;


Frame f;
Panel p1, p2, p3, p4, p5, p6;
private TextField tField;
private Menu EditMenu;
private MenuBar menuBar;
private MenuItem fmi1, fmi2, fmi3;
private Button num0, num1, num2, num3, num4, num5, num6, num7, num8,
num9;
private Button bAdd, bSub, bMul, bDiv, bPer, bSqrt, bFrac, bInt, bDot,
bCE, equals, backspace, clear;



/* 25Oct2005: Designed and programmed by jfernandez.ph */
/* 13Nov2005: Designed and programmed by jfernandez.ph */


Calculator(){
f = new Frame("Calculator");

menuBar = new MenuBar();
EditMenu = new Menu ("Edit");

fmi1 = new MenuItem(" Copy ");
fmi2 = new MenuItem(" Paste ");
fmi3 = new MenuItem(" Quit ");

EditMenu.add(fmi1);
EditMenu.add(fmi2);
EditMenu.addSeparator();
EditMenu.add(fmi3);

p1 = new Panel();
p2 = new Panel();
p3 = new Panel();
p4 = new Panel();
p5 = new Panel();
p6 = new Panel();

tField = new TextField(35);

num0 = new Button ("0");
num1 = new Button ("1");
num2 = new Button ("2");
num3 = new Button ("3");
num4 = new Button ("4");
num5 = new Button ("5");
num6 = new Button ("6");
num7 = new Button ("7");
num8 = new Button ("8");
num9 = new Button ("9");
bAdd = new Button ("+");
bSub = new Button ("-");
bMul = new Button ("x");
bDiv = new Button ("/");
bPer = new Button ("%");
bSqrt = new Button ("sqrt");
bFrac = new Button ("1/x");
bInt = new Button ("+/-");
bDot = new Button (".");
bCE = new Button ("CE");
equals = new Button ("=");
backspace = new Button ("Backspace");
clear = new Button ("C");
}



/* 25Oct2005: Designed and programmed by jfernandez.ph */
/* 13Nov2005: Designed and programmed by jfernandez.ph */



public void launchFrame(){

tField.setText("0.");
tField.setEnabled(false);

menuBar.add(EditMenu);

p2.add(backspace);
p2.add(bCE);
p2.add(clear);

p3.add(num7);
p3.add(num8);
p3.add(num9);
p3.add(bDiv);
p3.add(bSqrt);

p4.add(num4);
p4.add(num5);
p4.add(num6);
p4.add(bMul);
p4.add(bPer);

p5.add(num1);
p5.add(num2);
p5.add(num3);
p5.add(bSub);
p5.add(bFrac);

p6.add(num0);
p6.add(bInt);
p6.add(bDot);
p6.add(bAdd);
p6.add(equals);

p2.setLayout(new GridLayout (1, 3, 2, 2) );
p3.setLayout(new GridLayout (1, 3, 2, 2) );
p4.setLayout(new GridLayout (1, 3, 2, 2) );
p5.setLayout(new GridLayout (1, 3, 2, 2) );
p6.setLayout(new GridLayout (1, 3, 2, 2) );

f.setLayout(new GridLayout (6, 1) );
f.setResizable(false);
f.setSize(300,250);
f.add(tField);
f.add(p2);
f.add(p3);
f.add(p4);
f.add(p5);
f.add(p6);
f.setVisible(true);
f.setMenuBar(menuBar);
f.pack();

// ACTION LISTENERS
clear.addActionListener(this);
bCE.addActionListener(this);

num0.addActionListener(this);
num1.addActionListener(this);
num2.addActionListener(this);
num3.addActionListener(this);
num4.addActionListener(this);
num5.addActionListener(this);
num6.addActionListener(this);
num7.addActionListener(this);
num8.addActionListener(this);
num9.addActionListener(this);

bAdd.addActionListener(this);
bSub.addActionListener(this);
bMul.addActionListener(this);
bDiv.addActionListener(this);
bPer.addActionListener(this);

bInt.addActionListener(this);
bSqrt.addActionListener(this);
bFrac.addActionListener(this);
bDot.addActionListener(this);

equals.addActionListener(this);
backspace.addActionListener(this);

fmi1.addActionListener(this);
fmi2.addActionListener(this);
fmi3.addActionListener(this);
}



/* 25Oct2005: Designed and programmed by jfernandez.ph */
/* 13Nov2005: Designed and programmed by jfernandez.ph */




/* |------------ START OF ACTION EVENTS ------------| */


public void actionPerformed(ActionEvent a){


try{
/* |-------- Handling Exceptions ---------| */


if(a.getSource()==num0){
value+=0;
tField.setText(value);
}
if(a.getSource()==num1){
value+=1;
tField.setText(value);
}
if(a.getSource()==num2){
value+=2;
tField.setText(value);
}
if(a.getSource()==num3){
value+=3;
tField.setText(value);
}
if(a.getSource()==num4){
value+=4;
tField.setText(value);
}
if(a.getSource()==num5){
value+=5;
tField.setText(value);
}
if(a.getSource()==num6){
value+=6;
tField.setText(value);
}
if(a.getSource()==num7){
value+=7;
tField.setText(value);
}
if(a.getSource()==num8){
value+=8;
tField.setText(value);
}
if(a.getSource()==num9){
value+=9;
tField.setText(value);
}



/* 25Oct2005: Designed and programmed by jfernandez.ph */
/* 13Nov2005: Designed and programmed by jfernandez.ph */



if (a.getSource() == bAdd){
v1 = Double.parseDouble( tField.getText() );
ctr=0;
o = '+';
value="";
tField.setText("" +value);
}

if (a.getSource() == bSub){
v1 = Double.parseDouble( tField.getText() );
ctr=0;
o = '-';
value="";
tField.setText("" +value);
}

if (a.getSource() == bMul){
v1 = Double.parseDouble( tField.getText() );
ctr=0;
o = 'x';
value="";
tField.setText("" +value);
}

if (a.getSource() == bDiv){
v1 = Double.parseDouble( tField.getText() );
ctr=0;
o = '/';
value="";
tField.setText("" +value);
}

if (a.getSource() == bPer){
v1 = Double.parseDouble( tField.getText() );
ctr=0;
value="";
answer = (v1/100);
tField.setText("" +answer);
}



/* 25Oct2005: Designed and programmed by jfernandez.ph */
/* 13Nov2005: Designed and programmed by jfernandez.ph */



/* |-- EQUALS ACTION --| */

if(a.getSource()==equals){
value="";
v2 = Double.parseDouble(tField.getText());

if(o=='+'){
ctr=0;
answer = v1 + v2;
tField.setText("" +answer);
value=""; v1=null; v2=null;
}
else if(o=='-'){
ctr=0;
answer = v1 - v2;
tField.setText("" +answer);
value=""; v1=null; v2=null;
}
else if(o=='x'){
ctr=0;
answer = v1 * v2;
tField.setText("" +answer);
value=""; v1=null; v2=null;
}
else if(o=='/'){
ctr=0;
answer = v1 / v2;
tField.setText("" +answer);
value=""; v1=null; v2=null;
}
else if(o=='%'){
ctr=0;
answer = v1 % v2;
tField.setText("" +answer);
value=""; v1=null; v2=null;
}
else{}
}

/* |-- EQUALS ACTION --| */



/* 25Oct2005: Designed and programmed by jfernandez.ph */
/* 13Nov2005: Designed and programmed by jfernandez.ph */



/* |-- Clear --| */
if(a.getSource()==clear){
ctr=0;
v1=null;
v2=null;
value="";
answer=0.;
tField.setText("0.");

}

if(a.getSource()==bCE){
ctr=0;
value="";
tField.setText("0.");
}


/* |-- Point --| */
if(a.getSource() == bDot){
if(ctr==0){
value+=".";
ctr+=1;
tField.setText("" +value);
}
else{
System.out.print("");
}

}



/* |-- Back Space --| */
if(a.getSource() == backspace){
value = value.substring(0, value.length()-1 );
tField.setText("" +value);
}



/* |-- Square Root --| */
if(a.getSource() == bSqrt){
ctr=0;
value = "";
v1 = Math.sqrt( Double.parseDouble( tField.getText() ) );
tField.setText("" +v1);
}



/* |-- Integer --| */
if(a.getSource() == bInt){
ctr=0;
NumberConverted = ( Double.parseDouble(tField.getText()) * -1 );
value = "";
tField.setText("" +NumberConverted);
}



/* |-- Reciprocal --| */
if(a.getSource() == bFrac){
ctr=0;
value = "";
Double NumberContainer = ( 1 / Double.parseDouble(
tField.getText() ) );
tField.setText("" +NumberContainer);
}


// ------------ Menu Item Actions ------------ //

if(a.getSource() == fmi1){
cv = tField.getText();
}

if(a.getSource() == fmi2){
tField.setText("" +cv);
}

if(a.getSource() == fmi3){
System.exit(0);
}

} // End of Try


/* |-------- Attempting To Catch Runtime Errors ---------| */

catch(StringIndexOutOfBoundsException str){}
catch(NumberFormatException nfe){}
catch(NullPointerException npe){}

} // END OF ACTION EVENTS



/* 25Oct2005: Designed and programmed by jfernandez.ph */
/* 13Nov2005: Designed and programmed by jfernandez.ph */


public static void main (String args[]){
Calculator s = new Calculator();
s.launchFrame();
}
}

http://dayaprime.com

Tidak ada komentar:

Posting Komentar