Current location - Plastic Surgery and Aesthetics Network - Plastic surgery and beauty - Complete addition, subtraction, multiplication and division by static method.
Complete addition, subtraction, multiplication and division by static method.
Import java.awt. *;

Import java.awt.event. *;

Import javax.swing. *;

Import javax.swing.border. *;

Import java.util.linkedlist; //Toolkit

Import java.text.numberformat; //Text package

/**

* java swing Simple Calculator

* @ The author is young

*

*/

The public class calculator extension framework implements the action listener//calculator class.

{

JTextField results;

number button number button[];

operator button operator button[];

Buttons radixpoint, positiveminus, backspace, reciprocal, equal, clear// Declarer variable.

//Count button, minus button, backspace button, countdown button, equal sign button and reset button.

Panel panel;

String operators [] = {"+","-","*", "/"};

LinkedList linked list;

boolean pressequal = false

Public Calculator ()//Construction

{

Super ("calculator");

linklist = new linked list();

number button = new number button[ 10];

for(int I = 0; I < = 9; i++) {

NumberButton[i] = new numeric button (i);

Numeric button [i]. addActionListener(this);

}

operator button = new operator button[4];

for(int I = 0; I<4; i++) {

operator button[I]= new operator button(operator[I]);

Operator button [i]. addActionListener(this);

}

Radixpoint = new button (".");

Positiveminus = New button ("+/-");

back space = new Button(" CE ");

Countdown = new button ("1/x");

Equal = New button ("=");

Clear = new button ("c");

radix point . set foreground(color . red);

positive MINUS . set foreground(color . red);

back space . set foreground(color . red);

reciprocal . set foreground(color . red);

equal . set foreground(color . red);

clear . set foreground(color . red);

radix point . addactionlistener(this);

positive MINUS . addactionlistener(this);

backspace . addactionlistener(this);

reciprocal . addactionlistener(this);

equal . addactionlistener(this);

clear . addactionlistener(this);

result = new JTextField( 10);

result . sethorizontal alignment(JTextField。 Right);

result . set foreground(color . black);

result . set background(color . white);

Result.setFont (new font ("TimesRoman", font. Plain,14));

Result.setBorder (the new SoftBevelBorder(BevelBorder). Reduce));

result . set editable(false);

Panel = new Panel();

panel . set layout(new GridLayout(4,5));

panel . add(number button[ 1]);

panel . add(number button[2]);

panel . add(number button[3]);

Panel.add (backspace);

panel . add(clear);

panel . add(number button[4]);

panel . add(number button[5]);

panel . add(number button[6]);

panel . add(operator button[0]);

panel . add(operator button[2]);

panel . add(number button[7]);

panel . add(number button[8]);

panel . add(number button[9]);

panel . add(operator button[ 1]);

panel . add(operator button[3]);

panel . add(number button[0]);

panel . add(positive MINUS);

Panel.add (reciprocal);

panel . add(radix point);

Panel.add (equal to);

Add (result, "North");

Add (panel, "center");

addWindowListener(new window adapter(){

public void window closing(window event e){

system . exit(0);

}

});

setSize(270,200);

setLocation(300,230);

set visible(true);

}

Public void action performed (action event e)//Click the button to handle the event.

{

If (e.getsource () instance of number button)//number button

{

number button b =(number button)e . getsource();

if (linklist.size() == 0) {

int number = b . get number();

linklist . add("+number);

result . settext("+number);

pressequal = false

}

else if(linklist . size()= = 1 & amp; & amppressequal == false) {

int number = b . get number();

String num =(String)linklist . get first();

string s = num . concat("+number);

linklist.set(0,s);

result.setText

} else if(linklist . size()= = 1 & amp; & amppressequal == true) {

int number = b . get number();

linklist . remove first();

linklist . add("+number);

pressequal = false

result . settext("+number);

} else if (linklist.size() == 2) {

int number = b . get number();

linklist . add("+number);

result . settext("+number);

} else if (linklist.size() == 3) {

int number = b . get number();

String num =(String)linklist . get last();

string s = num . concat("+number);

linklist.set(2,s);

result.setText

}

} else if (such as getsource () instance of operator button) //action button

{

operator button b =(operator button)e . get source();

if (linklist.size() == 1) {

String Fu Hao = b.getoperator ();

Linklist.add (Fu Hao);

} else if (linklist.size() == 2) {

String Fu Hao = b.getoperator ();

Linklist.set( 1, Fu Hao);

} else if (linklist.size() == 3) {

String Fu Hao = b.getoperator ();

String number 1 =(String)linklist . get first();

String number 2 =(String)linklist . get last();

String operator =(String)linklist . get( 1);

Try {

double n 1 = double . parse double(number 1);

double N2 = double . parse double(number 2);

double n = 0;

if(operator . equals("+"){

n = n 1+N2;

} else if(operator . equals("-"){

n = n 1-N2;

} else if(operator . equals(" * "){

n = n 1 * N2;

} else if(operator . equals("/"){

n = n 1/N2;

}

linklist . clear();

linklist . add("+n);

Linklist.add (Fu Hao);

result . settext("+n);

} catch (abnormal ee) {

}

}

} else if (e.getsource () = = equal)//equal sign button

{

pressequal = true

if(linklist . size()= = 1 | | linklist . size()= = 2){

String num =(String)linklist . get first();

result . settext("+num);

} else if (linklist.size() == 3) {

String number 1 =(String)linklist . get first();

String number 2 =(String)linklist . get last();

String operator =(String)linklist . get( 1);

Try {

double n 1 = double . parse double(number 1);

double N2 = double . parse double(number 2);

double n = 0;

if(operator . equals("+"){

n = n 1+N2;

} else if(operator . equals("-"){

n = n 1-N2;

} else if(operator . equals(" * "){

n = n 1 * N2;

} else if(operator . equals("/"){

n = n 1/N2;

}

result . settext("+n);

linklist.set(0," "+n);

linklist . remove last();

linklist . remove last();

} catch (abnormal ee) {

}

}

} else if (e.getsource () = = radixpoint)//several buttons.

{

if (linklist.size() == 0) {

pressequal = false

} else if(linklist . size()= = 1){

string dot = radix point . get label();

String num =(String)linklist . get first();

String s = null

if(num . index of(dot)= =- 1){

S = num.concat (point);

linklist.set(0,s);

} Otherwise {

s = num

}

linklist.set(0,s);

result.setText

}

else if (linklist.size() == 3) {

string dot = radix point . get label();

String num =(String)linklist . get last();

String s = null

if(num . index of(dot)= =- 1){

S = num.concat (point);

linklist.set(2,s);

} Otherwise {

s = num

}

result.setText

}

} else if (e.getsource () = = backspace)//backspace button

{

if (linklist.size() == 1) {

String num =(String)linklist . get first();

if(num . length()& gt; = 1) {

num = num.substring(0,num . length()- 1);

linklist.set(0,num);

result . settext(num);

} Otherwise {

linklist . remove last();

result . settext(" 0 ");

}

} else if (linklist.size() == 3) {

String num =(String)linklist . get last();

if(num . length()& gt; = 1) {

num = num.substring(0,num . length()- 1);

linklist.set(2,num);

result . settext(num);

} Otherwise {

linklist . remove last();

result . settext(" 0 ");

}

}

} else if (e.getsource () = = plus or minus)//minus button

{

if (linklist.size() == 1) {

String number 1 =(String)linklist . get first();

Try {

double d = double . parse double(number 1);

d =- 1 * d;

string str = string . value of(d);

linklist.set(0,str);

result . settext(str);

} catch (abnormal ee) {

}

} else if (linklist.size() == 3) {

String number 2 =(String)linklist . get last();

Try {

double d = double . parse double(number 2);

d =- 1 * d;

string str = string . value of(d);

linklist.set(2,str);

result . settext(str);

} catch (abnormal ee) {

}

}

} else if (e.getsource () = = countdown)//countdown button

{

if(linklist . size()= = 1 | | linklist . size()= = 2){

String number 1 =(String)linklist . get first();

Try {

double d = double . parse double(number 1);

d = 1.0/d;

string str = string . value of(d);

linklist.set(0,str);

result . settext(str);

} catch (abnormal ee) {

}

} else if (linklist.size() == 3) {

String number 2 =(String)linklist . get last();

Try {

double d = double . parse double(number 2);

d = 1.0/d;

string str = string . value of(d);

linklist.set(0,str);

result . settext(str);

} catch (abnormal ee) {

}

}

} else if (e.getsource () = = clear)//Clear button

{

pressequal = false

result . settext(" 0 ");

linklist . clear();

}

}

Public static void main (strinargs []) {

New calculator ();

}

}

Category Number Button Expand Button//Number Button Category

{

Int number;

Public numberbutton (int number)//construction

{

Super ("+number);

This.number = number;

set foreground(color . blue);

}

public int getNumber() {

Quantity returned;

}

}

Class Operator Button Extension Button//Operator Symbol Button Class

{

String operator;

Common Operator Button (String Operator)//Construction

{

Super (operator);

this.operator = operator

set foreground(color . red);

}

Public string getOperator() {

Return operator;

}

}