Button AC; Button MR; Button MS ; Button Mplus; public static void main(String args[]) { new Calculator(); }public Calculator() { /************************************* * To define the Frame and divided * it into 3 regions ************/ Frame f = new Frame("Calculator"); f.setLocation(300,200); f.setResizable(false);BorderLayout bl = new BorderLayout(10,5); Panel center = new Panel(bl); center.setBackground(Color.gray); center.setLayout(bl);Panel panel = new Panel(); panel.setBackground(Color.gray);/********************************* * To add listener to the Frame * make it to be able to close ************/ f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); /********************************* * To define the Main Keyboard ************/
/******************************************** * To initialize the Buttons and register * them to a certain object ************/ for (int i=0;i<10;i++) { bt[i]=new Button(""+i); } equal = new Button("="); add = new Button("+"); subtract = new Button("-"); multiply = new Button("*"); divide = new Button("/"); plus_minus =new Button("+/-"); sqrt = new Button("sqrt"); percent = new Button("%"); fraction = new Button("1/x"); decimal = new Button(".");
AC = new Button("AC"); MR = new Button("MR"); MS = new Button("MS"); Mplus = new Button("M+");
/************************************* * To lay out the right Keyboard ************/
GridLayout gl_right = new GridLayout(4,4,5,5); Panel p_right = new Panel(gl_right); p_right.setLayout(gl_right);
for (int i=7;i<10;i++) { p_right.add(bt[i]); } p_right.add(divide); p_right.add(sqrt); for (int i=4;i<7;i++) { p_right.add(bt[i]); } p_right.add(multiply); p_right.add(percent); for (int i=1;i<4;i++) { p_right.add(bt[i]); } p_right.add(subtract); p_right.add(fraction); p_right.add(bt[0]); p_right.add(plus_minus); p_right.add(decimal); p_right.add(add); p_right.add(equal);
/********************************* * To lay out the left Keyboard ************/ GridLayout gl_left = new GridLayout(4,1,5,5); Panel p_left = new Panel(gl_left); p_left.setLayout(gl_left);
p_left.add(AC); p_left.add(MR); p_left.add(MS); p_left.add(Mplus); /********************************* * To define the Label and lay * it out on the top Keyboard ************/ lb = new Label("",Label.RIGHT); lb.setBackground(Color.white); /********************************* * To add the Main Keyboard * into the Frame ************/ center.add(p_right,BorderLayout.CENTER); center.add(lb,BorderLayout.NORTH); center.add(p_left,BorderLayout.WEST);
panel.add(center);f.add(panel);
f.pack(); f.setVisible(true); }
public void actionPerformed(ActionEvent e) { Button button = (Button)e.getSource(); String a = button.getLabel(); char inputChar = a.charAt(0); int inputInt = Character.digit(inputChar,10); if (inputInt != -1) { add.setEnabled(true); subtract.setEnabled(true); multiply.setEnabled(true); divide.setEnabled(true); Procedure.registerNumber.add(new Integer(inputInt)); } else { if (inputChar != '=') { Procedure.registerNumber.add(new Integer(Integer.MAX_VALUE)); String strInput = new String(button.getLabel()); Procedure.registerSymbol.add(strInput); add.setEnabled(false); subtract.setEnabled(false); multiply.setEnabled(false); divide.setEnabled(false); } else { add.setEnabled(false); subtract.setEnabled(false); multiply.setEnabled(false); divide.setEnabled(false); equal.setEnabled(false); for (int i=0;i<10;i++) { bt[i].setEnabled(false); } Procedure.calculate(); lb.setText(Double.toString(Procedure.getResult())); } }
switch(inputChar) { case '0' : lb.setText(Procedure.dispaly());break;
case '1' :lb.setText(Procedure.dispaly());break;
case '2' :lb.setText(Procedure.dispaly());break;
case '3' :lb.setText(Procedure.dispaly());break;
case '4': lb.setText(Procedure.dispaly());break;
case '5' : lb.setText(Procedure.dispaly());break;
case '6' :lb.setText(Procedure.dispaly());break;
case '7' :lb.setText(Procedure.dispaly());break;
case '8' :lb.setText(Procedure.dispaly());break;
case '9' :lb.setText(Procedure.dispaly());break;
case '+' :lb.setText(Procedure.dispaly());break;
case '-' :lb.setText(Procedure.dispaly());break;
case '*' :lb.setText(Procedure.dispaly());break;
case '/' :lb.setText(Procedure.dispaly());break;
case 'A' : lb.setText(""); Procedure.clear(); equal.setEnabled(true); for (int i=0;i<10;i++) { bt[i].setEnabled(true); } break; } } } class Procedure { static List registerNumber = new LinkedList(); static List registerSymbol = new LinkedList(); private static double result;public static void clear() { registerNumber.clear(); registerSymbol.clear(); }public static String dispaly() { String str = new String(); Iterator itNum = registerNumber.iterator(); Iterator itSym = registerSymbol.iterator();while(itNum.hasNext()) { Integer integer = (Integer)itNum.next(); int i = integer.intValue(); if (i != Integer.MAX_VALUE) { str += Integer.toString(i); } else { str += itSym.next(); } } return(str); }public static void calculate() { int[] openPoint = {0,0}; String subStr = new String(); String strNum = new String(); String strSym = new String(); Iterator itNum = registerNumber.iterator(); Iterator itSym = registerSymbol.iterator(); double[][] element = new double[50][1]; int num=0,countFrom=0,countEnd=0;while(itNum.hasNext()) { Integer integer = (Integer)itNum.next(); int i = integer.intValue(); if (i != Integer.MAX_VALUE) { countEnd++; strNum += Integer.toString(i); } else { element[num++][0] = Integer.parseInt(strNum.substring(countFrom,countEnd)); strSym += itSym.next(); countFrom=countEnd; } } strSym += "="; element[num][0] = Integer.parseInt(strNum.substring(countFrom,countEnd)); /*******************************/ // convert to Symbol Array /*****************************/ char[] symbol = strSym.toCharArray(); int elementPoint = num+1; int symbolPoint = symbol.length-1;do { switch (symbol[0]) { case '+' : if (symbol[1]=='*'|symbol[1]=='/') { if (symbol[1]=='*') { element[1][0]=element[1][0]*element[2][0]; for (int j=2;j<elementPoint;j++) { element[j][0]=element[j+1][0]; } elementPoint--; for (int j=1;j<symbolPoint;j++) { symbol[j]=symbol[j+1]; } symbolPoint--; } else { element[1][0]=element[1][0]/element[2][0]; for (int j=2;j<elementPoint;j++) { element[j][0]=element[j+1][0]; } elementPoint--; for (int j=1;j<symbolPoint;j++) { symbol[j]=symbol[j+1]; } symbolPoint--; } } else { element[0][0]=element[0][0]+element[1][0]; if (symbol[1] != '=') { for (int j=1;j<elementPoint;j++) { element[j][0]=element[j+1][0]; } elementPoint--; } for (int j=0;j<symbolPoint;j++) { symbol[j]=symbol[j+1]; } symbolPoint--; } break;case '-' : if (symbol[1]=='*'|symbol[1]=='/') { if (symbol[1]=='*') { element[1][0]=element[1][0]*element[2][0]; for (int j=2;j<elementPoint;j++) { element[j][0]=element[j+1][0]; } elementPoint--; for (int j=1;j<symbolPoint;j++) { symbol[j]=symbol[j+1]; } symbolPoint--; } else { element[1][0]=element[1][0]/element[2][0]; for (int j=2;j<elementPoint;j++) { element[j][0]=element[j+1][0]; } elementPoint--; for (int j=1;j<symbolPoint;j++) { symbol[j]=symbol[j+1]; } symbolPoint--;} } else { element[0][0]=element[0][0]-element[1][0]; if (symbol[1] != '=') { for (int j=1;j<elementPoint;j++) { element[j][0]=element[j+1][0]; } elementPoint--; } for (int j=0;j<symbolPoint;j++) { symbol[j]=symbol[j+1]; } symbolPoint--; } break;case '*' : element[0][0]=element[0][0]*element[1][0]; if (symbol[1] != '=') { for (int j=1;j<elementPoint;j++) { element[j][0]=element[j+1][0]; } elementPoint--; } for (int j=0;j<symbolPoint;j++) { symbol[j]=symbol[j+1]; } symbolPoint--; break;case '/' : element[0][0]=element[0][0]/element[1][0]; if (symbol[1] != '=') { for (int j=1;j<elementPoint;j++) { element[j][0]=element[j+1][0]; } elementPoint--; } for (int j=0;j<symbolPoint;j++) { symbol[j]=symbol[j+1]; } symbolPoint--; break; } }while(symbol[0]!='='); result = element[0][0]; }public static double getResult() { return(result); } }
//你试试,这是个我帮别的网友改过之后的程序! //file name: JSQ2.javaimport java.awt.*; import java.awt.event.*; import javax.swing.*; public class JSQ2 extends JFrame implements ActionListener { private String name[] = {"0","1", "2","+","3","4","5","-","6","7","8","*","9",".","=","/"}; private String extend[] = {"x^2","ln","back","sin","cos","tan","√ ̄","off","cls"}; String s=""; int flag=0; double x; final double pi = 3.14159265358979323846; private JButton button[] = new JButton[name.length]; private JButton button1[] = new JButton[extend.length]; JLabel dis_show = new JLabel("结果:"); JTextField window = new JTextField(12); public JSQ2() { super("woodfire小小计算机"); setSize(200,290); Container c = getContentPane(); c.setLayout(new GridLayout(2,1,0,0)); JPanel result = new JPanel(); result.add(dis_show); result.add(window); for(int i= 0;i<extend.length;i++) { button1[i] = new JButton(extend[i]); result.add(button1[i]); } JPanel border = new JPanel(); for(int i= 0;i<name.length;i++) { button[i] = new JButton(name[i]); border.add(button[i]); } c.add(result); c.add(border); for(int i= 0;i<name.length;i++) { button[i].addActionListener(this); } for(int i= 0;i<extend.length;i++) { button1[i].addActionListener(this); } show(); } public void actionPerformed(ActionEvent e) { if (e.getSource()==button[3]) { x=Double.parseDouble(s); flag=1; window.setText(""); s=""; } else if (e.getSource()==button[7]) { x=Double.parseDouble(s); flag=2; window.setText(""); s=""; } else if (e.getSource()==button[11]) { x=Double.parseDouble(s); flag=3; window.setText(""); s=""; } else if (e.getSource()==button[15]) { x=Double.parseDouble(s); flag=4; window.setText(""); s=""; } else if (e.getSource()==button[14]) { switch(flag) { case 1: { x=x+Double.parseDouble(s); String s=String.valueOf(x); window.setText(s); break; } case 2: { x=x-Double.parseDouble(s); String s=String.valueOf(x); window.setText(s); break; } case 3: { x=x*Double.parseDouble(s); String s=Double.toString(x); window.setText(s); break; } case 4: { if(Double.parseDouble(s)==0) { window.setText("除数不能为0"); break; } x=x/Double.parseDouble(s); String s=String.valueOf(x); window.setText(s); break; } } } else if(e.getSource()==button1[2]) { StringBuffer str = new StringBuffer(window.getText()); int n=str.length(); int m=n-1; s = String.valueOf(str.delete(m,n)); window.setText(s); } else if(e.getSource()==button1[8]) { window.setText(""); s=""; flag=0; } else if(e.getSource()==button1[0]) { x=Double.parseDouble(s); x=x*x; String s=String.valueOf(x); window.setText(s); } else if(e.getSource()==button1[1]) { x=Math.log(Double.parseDouble(s)); String s=String.valueOf(x); window.setText(s); } else if(e.getSource()==button1[3]) { x=Math.sin(Double.parseDouble(s)*pi/180); String s=String.valueOf(x); window.setText(s); } else if(e.getSource()==button1[6]) { x=Math.sqrt(Double.parseDouble(s)); String s=String.valueOf(x); window.setText(s); } else if(e.getSource()==button1[4]) { x=Math.cos(Double.parseDouble(s)*pi/180); String s=String.valueOf(x); window.setText(s); } else if(e.getSource()==button1[5]) { x=Math.tan(Double.parseDouble(s)*pi/180); String s=String.valueOf(x); window.setText(s); } else if(e.getSource()==button1[7]) { System.exit(0); } else { s=s+e.getActionCommand(); window.setText(s); } } public static void main(String[] args) { JSQ2 bun = new JSQ2(); bun.addWindowListener(new WindowAdapter() { public void windowListener(WindowEvent e) { System.exit(0); } }); } }
主要是我做不出好看的界面
* @(#)Test.java 1.0 03/04/30
*
*/
import java.awt.*;
import java.awt.event.*;
import java.util.List;
import java.util.*;
import java.lang.Math;
class Calculator extends Frame implements ActionListener
{
Label lb;
/**************************************
* To define the Buttons
************/
Button bt[] = new Button[10];
Button equal;
Button add ;
Button subtract ;
Button multiply ;
Button divide ;
Button plus_minus ;
Button sqrt ;
Button percent ;
Button fraction ;
Button decimal ;
Button AC;
Button MR;
Button MS ;
Button Mplus; public static void main(String args[])
{
new Calculator();
}public Calculator()
{
/*************************************
* To define the Frame and divided
* it into 3 regions
************/
Frame f = new Frame("Calculator");
f.setLocation(300,200);
f.setResizable(false);BorderLayout bl = new BorderLayout(10,5);
Panel center = new Panel(bl);
center.setBackground(Color.gray);
center.setLayout(bl);Panel panel = new Panel();
panel.setBackground(Color.gray);/*********************************
* To add listener to the Frame
* make it to be able to close
************/
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
/*********************************
* To define the Main Keyboard
************/
/********************************************
* To initialize the Buttons and register
* them to a certain object
************/
for (int i=0;i<10;i++)
{
bt[i]=new Button(""+i);
}
equal = new Button("=");
add = new Button("+");
subtract = new Button("-");
multiply = new Button("*");
divide = new Button("/");
plus_minus =new Button("+/-");
sqrt = new Button("sqrt");
percent = new Button("%");
fraction = new Button("1/x");
decimal = new Button(".");
AC = new Button("AC");
MR = new Button("MR");
MS = new Button("MS");
Mplus = new Button("M+");
/***************************************
* disable some buttons **
************ **/
plus_minus.setEnabled(false); /**/
percent.setEnabled(false); /**/
fraction.setEnabled(false); /**/
decimal.setEnabled(false); /**/
MR.setEnabled(false); /**/
MS.setEnabled(false); /**/
Mplus.setEnabled(false); /**/
sqrt.setEnabled(false); /**/
add.setEnabled(false); /**/
subtract.setEnabled(false); /**/
multiply.setEnabled(false); /**/
divide.setEnabled(false); /**/
sqrt.setEnabled(false); /**/
/***************************************/
for (int i=0;i<10;i++)
{
bt[i].addActionListener(this);
}
equal.addActionListener(this);
add.addActionListener(this);
subtract.addActionListener(this);
multiply.addActionListener(this);
divide.addActionListener(this);
AC.addActionListener(this);
/*************************************
* To lay out the right Keyboard
************/
GridLayout gl_right = new GridLayout(4,4,5,5);
Panel p_right = new Panel(gl_right);
p_right.setLayout(gl_right);
for (int i=7;i<10;i++)
{
p_right.add(bt[i]);
}
p_right.add(divide);
p_right.add(sqrt);
for (int i=4;i<7;i++)
{
p_right.add(bt[i]);
}
p_right.add(multiply);
p_right.add(percent);
for (int i=1;i<4;i++)
{
p_right.add(bt[i]);
}
p_right.add(subtract);
p_right.add(fraction);
p_right.add(bt[0]);
p_right.add(plus_minus);
p_right.add(decimal);
p_right.add(add);
p_right.add(equal);
/*********************************
* To lay out the left Keyboard
************/
GridLayout gl_left = new GridLayout(4,1,5,5);
Panel p_left = new Panel(gl_left);
p_left.setLayout(gl_left);
p_left.add(AC);
p_left.add(MR);
p_left.add(MS);
p_left.add(Mplus);
/*********************************
* To define the Label and lay
* it out on the top Keyboard
************/
lb = new Label("",Label.RIGHT);
lb.setBackground(Color.white);
/*********************************
* To add the Main Keyboard
* into the Frame
************/
center.add(p_right,BorderLayout.CENTER);
center.add(lb,BorderLayout.NORTH);
center.add(p_left,BorderLayout.WEST);
panel.add(center);f.add(panel);
f.pack();
f.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Button button = (Button)e.getSource();
String a = button.getLabel();
char inputChar = a.charAt(0);
int inputInt = Character.digit(inputChar,10);
if (inputInt != -1)
{
add.setEnabled(true);
subtract.setEnabled(true);
multiply.setEnabled(true);
divide.setEnabled(true);
Procedure.registerNumber.add(new Integer(inputInt));
}
else
{
if (inputChar != '=')
{
Procedure.registerNumber.add(new Integer(Integer.MAX_VALUE));
String strInput = new String(button.getLabel());
Procedure.registerSymbol.add(strInput);
add.setEnabled(false);
subtract.setEnabled(false);
multiply.setEnabled(false);
divide.setEnabled(false);
}
else
{
add.setEnabled(false);
subtract.setEnabled(false);
multiply.setEnabled(false);
divide.setEnabled(false);
equal.setEnabled(false);
for (int i=0;i<10;i++)
{
bt[i].setEnabled(false);
}
Procedure.calculate();
lb.setText(Double.toString(Procedure.getResult()));
}
}
switch(inputChar)
{
case '0' : lb.setText(Procedure.dispaly());break;
case '1' :lb.setText(Procedure.dispaly());break;
case '2' :lb.setText(Procedure.dispaly());break;
case '3' :lb.setText(Procedure.dispaly());break;
case '4': lb.setText(Procedure.dispaly());break;
case '5' : lb.setText(Procedure.dispaly());break;
case '6' :lb.setText(Procedure.dispaly());break;
case '7' :lb.setText(Procedure.dispaly());break;
case '8' :lb.setText(Procedure.dispaly());break;
case '9' :lb.setText(Procedure.dispaly());break;
case '+' :lb.setText(Procedure.dispaly());break;
case '-' :lb.setText(Procedure.dispaly());break;
case '*' :lb.setText(Procedure.dispaly());break;
case '/' :lb.setText(Procedure.dispaly());break;
case 'A' : lb.setText("");
Procedure.clear();
equal.setEnabled(true);
for (int i=0;i<10;i++)
{
bt[i].setEnabled(true);
}
break;
}
}
}
class Procedure
{
static List registerNumber = new LinkedList();
static List registerSymbol = new LinkedList();
private static double result;public static void clear()
{
registerNumber.clear();
registerSymbol.clear();
}public static String dispaly()
{
String str = new String();
Iterator itNum = registerNumber.iterator();
Iterator itSym = registerSymbol.iterator();while(itNum.hasNext())
{
Integer integer = (Integer)itNum.next();
int i = integer.intValue();
if (i != Integer.MAX_VALUE)
{
str += Integer.toString(i);
}
else
{
str += itSym.next();
}
}
return(str);
}public static void calculate()
{
int[] openPoint = {0,0};
String subStr = new String();
String strNum = new String();
String strSym = new String();
Iterator itNum = registerNumber.iterator();
Iterator itSym = registerSymbol.iterator();
double[][] element = new double[50][1];
int num=0,countFrom=0,countEnd=0;while(itNum.hasNext())
{
Integer integer = (Integer)itNum.next();
int i = integer.intValue();
if (i != Integer.MAX_VALUE)
{
countEnd++;
strNum += Integer.toString(i);
}
else
{
element[num++][0] = Integer.parseInt(strNum.substring(countFrom,countEnd));
strSym += itSym.next();
countFrom=countEnd;
}
}
strSym += "=";
element[num][0] = Integer.parseInt(strNum.substring(countFrom,countEnd));
/*******************************/
// convert to Symbol Array
/*****************************/
char[] symbol = strSym.toCharArray(); int elementPoint = num+1;
int symbolPoint = symbol.length-1;do
{
switch (symbol[0])
{
case '+' : if (symbol[1]=='*'|symbol[1]=='/')
{
if (symbol[1]=='*')
{
element[1][0]=element[1][0]*element[2][0];
for (int j=2;j<elementPoint;j++)
{
element[j][0]=element[j+1][0];
}
elementPoint--;
for (int j=1;j<symbolPoint;j++)
{
symbol[j]=symbol[j+1];
}
symbolPoint--;
}
else
{
element[1][0]=element[1][0]/element[2][0];
for (int j=2;j<elementPoint;j++)
{
element[j][0]=element[j+1][0];
}
elementPoint--;
for (int j=1;j<symbolPoint;j++)
{
symbol[j]=symbol[j+1];
}
symbolPoint--;
}
}
else
{
element[0][0]=element[0][0]+element[1][0];
if (symbol[1] != '=')
{
for (int j=1;j<elementPoint;j++)
{
element[j][0]=element[j+1][0];
}
elementPoint--;
}
for (int j=0;j<symbolPoint;j++)
{
symbol[j]=symbol[j+1];
}
symbolPoint--;
}
break;case '-' : if (symbol[1]=='*'|symbol[1]=='/')
{
if (symbol[1]=='*')
{
element[1][0]=element[1][0]*element[2][0];
for (int j=2;j<elementPoint;j++)
{
element[j][0]=element[j+1][0];
}
elementPoint--;
for (int j=1;j<symbolPoint;j++)
{
symbol[j]=symbol[j+1];
}
symbolPoint--;
}
else
{
element[1][0]=element[1][0]/element[2][0];
for (int j=2;j<elementPoint;j++)
{
element[j][0]=element[j+1][0];
}
elementPoint--;
for (int j=1;j<symbolPoint;j++)
{
symbol[j]=symbol[j+1];
}
symbolPoint--;}
}
else
{
element[0][0]=element[0][0]-element[1][0];
if (symbol[1] != '=')
{
for (int j=1;j<elementPoint;j++)
{
element[j][0]=element[j+1][0];
}
elementPoint--;
}
for (int j=0;j<symbolPoint;j++)
{
symbol[j]=symbol[j+1];
}
symbolPoint--;
}
break;case '*' : element[0][0]=element[0][0]*element[1][0];
if (symbol[1] != '=')
{
for (int j=1;j<elementPoint;j++)
{
element[j][0]=element[j+1][0];
}
elementPoint--;
}
for (int j=0;j<symbolPoint;j++)
{
symbol[j]=symbol[j+1];
}
symbolPoint--;
break;case '/' : element[0][0]=element[0][0]/element[1][0];
if (symbol[1] != '=')
{
for (int j=1;j<elementPoint;j++)
{
element[j][0]=element[j+1][0];
}
elementPoint--;
}
for (int j=0;j<symbolPoint;j++)
{
symbol[j]=symbol[j+1];
}
symbolPoint--;
break;
}
}while(symbol[0]!='=');
result = element[0][0];
}public static double getResult()
{
return(result);
}
}
//file name: JSQ2.javaimport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JSQ2 extends JFrame implements ActionListener
{
private String name[] =
{"0","1", "2","+","3","4","5","-","6","7","8","*","9",".","=","/"};
private String extend[] =
{"x^2","ln","back","sin","cos","tan","√ ̄","off","cls"};
String s="";
int flag=0;
double x;
final double pi = 3.14159265358979323846;
private JButton button[] = new JButton[name.length];
private JButton button1[] = new JButton[extend.length];
JLabel dis_show = new JLabel("结果:");
JTextField window = new JTextField(12);
public JSQ2()
{
super("woodfire小小计算机");
setSize(200,290);
Container c = getContentPane();
c.setLayout(new GridLayout(2,1,0,0));
JPanel result = new JPanel();
result.add(dis_show);
result.add(window);
for(int i= 0;i<extend.length;i++)
{
button1[i] = new JButton(extend[i]);
result.add(button1[i]);
}
JPanel border = new JPanel();
for(int i= 0;i<name.length;i++)
{
button[i] = new JButton(name[i]);
border.add(button[i]);
}
c.add(result);
c.add(border);
for(int i= 0;i<name.length;i++)
{
button[i].addActionListener(this);
}
for(int i= 0;i<extend.length;i++)
{
button1[i].addActionListener(this);
}
show();
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==button[3])
{
x=Double.parseDouble(s); flag=1;
window.setText("");
s="";
}
else if (e.getSource()==button[7])
{
x=Double.parseDouble(s);
flag=2;
window.setText("");
s="";
}
else if (e.getSource()==button[11])
{
x=Double.parseDouble(s);
flag=3;
window.setText("");
s="";
}
else if (e.getSource()==button[15])
{
x=Double.parseDouble(s);
flag=4;
window.setText("");
s="";
}
else if (e.getSource()==button[14])
{
switch(flag)
{
case 1:
{
x=x+Double.parseDouble(s);
String s=String.valueOf(x);
window.setText(s);
break;
}
case 2:
{
x=x-Double.parseDouble(s);
String s=String.valueOf(x);
window.setText(s);
break;
}
case 3:
{
x=x*Double.parseDouble(s);
String s=Double.toString(x);
window.setText(s);
break;
}
case 4:
{
if(Double.parseDouble(s)==0)
{
window.setText("除数不能为0");
break;
}
x=x/Double.parseDouble(s);
String s=String.valueOf(x);
window.setText(s);
break;
}
}
}
else if(e.getSource()==button1[2])
{
StringBuffer str = new StringBuffer(window.getText());
int n=str.length();
int m=n-1;
s = String.valueOf(str.delete(m,n));
window.setText(s);
}
else if(e.getSource()==button1[8])
{
window.setText("");
s="";
flag=0;
}
else if(e.getSource()==button1[0])
{
x=Double.parseDouble(s);
x=x*x;
String s=String.valueOf(x);
window.setText(s);
}
else if(e.getSource()==button1[1])
{
x=Math.log(Double.parseDouble(s));
String s=String.valueOf(x);
window.setText(s);
}
else if(e.getSource()==button1[3])
{
x=Math.sin(Double.parseDouble(s)*pi/180);
String s=String.valueOf(x);
window.setText(s);
}
else if(e.getSource()==button1[6])
{
x=Math.sqrt(Double.parseDouble(s));
String s=String.valueOf(x);
window.setText(s);
}
else if(e.getSource()==button1[4])
{
x=Math.cos(Double.parseDouble(s)*pi/180);
String s=String.valueOf(x);
window.setText(s);
}
else if(e.getSource()==button1[5])
{
x=Math.tan(Double.parseDouble(s)*pi/180);
String s=String.valueOf(x);
window.setText(s);
}
else if(e.getSource()==button1[7])
{
System.exit(0);
}
else
{
s=s+e.getActionCommand();
window.setText(s);
}
}
public static void main(String[] args)
{
JSQ2 bun = new JSQ2();
bun.addWindowListener(new WindowAdapter()
{
public void windowListener(WindowEvent e)
{
System.exit(0);
}
});
}
}