分享
 
 
 

用了12个小时完成一个计算器小作业

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JTextField;

import java.awt.Color;

public class createFrame

{

Frame f;

JTextField text,text2;

Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,

b18,b19,b20,b21,b22,b23,b24,b25,b26,b27;

double op1,op2,op2x,op3;//运算的三个数:op1,op2是运算数,op3是运算结果

char op=0,opx=0,opp=0;//运算操作符

boolean b=false;//我按过0键了,下次该按.了

boolean c=false;//按过运算符了,下次按数字时该清屏显示

boolean firstdeng=true;//第一次做=

double mjia=0;

public static void main(String[] args)

{

createFrame cf=new createFrame();

cf.createWindow();

}

public void createWindow()

{

f = new Frame("calculator");

f.setBackground(Color.LIGHT_GRAY);

// 增加关闭事件的监听器

this.shutwindow(f);

text=new JTextField();

text.setHorizontalAlignment(JTextField.RIGHT);

text.setSize(250,22);

text.setLocation(5,25);

text.setEditable(false);

text.setBackground(Color.WHITE);

text.setText("0.");

text2=new JTextField();

text2.setHorizontalAlignment(JTextField.CENTER);

text2.setSize(37,22);

text2.setLocation(5,50);

text2.setEditable(false);

text2.setText("");

text2.setBackground(Color.LIGHT_GRAY);

b1 = new Button("BackSpace");

b1.setSize(70,22);

b1.setLocation(52,50);

b2 = new Button("CE");

b2.setSize(60,22);

b2.setLocation(128,50);

b3 = new Button("C");

b3.setSize(60,22);

b3.setLocation(194,50);

b4 = new Button("MC");

b4.setSize(37,22);

b4.setLocation(5,75);

b5 = new Button("7");

b5.setSize(37,22);

b5.setLocation(50,75);

b6 = new Button("8");

b6.setSize(37,22);

b6.setLocation(93,75);

b7 = new Button("9");

b7.setSize(37,22);

b7.setLocation(136,75);

b8 = new Button("/");

b8.setSize(37,22);

b8.setLocation(179,75);

b9 = new Button("sqrt");

b9.setSize(37,22);

b9.setLocation(218,75);

b10 = new Button("MR");

b10.setSize(37,22);

b10.setLocation(5,100);

b11 = new Button("4");

b11.setSize(37,22);

b11.setLocation(50,100);

b12 = new Button("5");

b12.setSize(37,22);

b12.setLocation(93,100);

b13 = new Button("6");

b13.setSize(37,22);

b13.setLocation(136,100);

b14 = new Button("*");

b14.setSize(37,22);

b14.setLocation(179,100);

b15 = new Button("%");

b15.setSize(37,22);

b15.setLocation(218,100);

b16 = new Button("MS");

b16.setSize(37,22);

b16.setLocation(5,125);

b17 = new Button("1");

b17.setSize(37,22);

b17.setLocation(50,125);

b18 = new Button("2");

b18.setSize(37,22);

b18.setLocation(93,125);

b19 = new Button("3");

b19.setSize(37,22);

b19.setLocation(136,125);

b20 = new Button("-");

b20.setSize(37,22);

b20.setLocation(179,125);

b21 = new Button("1/x");

b21.setSize(37,22);

b21.setLocation(218,125);

b22 = new Button("M+");

b22.setSize(37,22);

b22.setLocation(5,150);

b23 = new Button("0");

b23.setSize(37,22);

b23.setLocation(50,150);

b24 = new Button("+/-");

b24.setSize(37,22);

b24.setLocation(93,150);

b25 = new Button(".");

b25.setSize(37,22);

b25.setLocation(136,150);

b26 = new Button("+");

b26.setSize(37,22);

b26.setLocation(179,150);

b27 = new Button("=");

b27.setSize(37,22);

b27.setLocation(218,150);

f.setLayout(null);

f.add(text);

f.add(text2);

b1.addActionListener(new ButtonHandler());

b2.addActionListener(new ButtonHandler());

b3.addActionListener(new ButtonHandler());

b4.addActionListener(new ButtonHandler());

b5.addActionListener(new ButtonHandler());

b6.addActionListener(new ButtonHandler());

b7.addActionListener(new ButtonHandler());

b8.addActionListener(new ButtonHandler());

b9.addActionListener(new ButtonHandler());

b10.addActionListener(new ButtonHandler());

b11.addActionListener(new ButtonHandler());

b12.addActionListener(new ButtonHandler());

b13.addActionListener(new ButtonHandler());

b14.addActionListener(new ButtonHandler());

b15.addActionListener(new ButtonHandler());

b16.addActionListener(new ButtonHandler());

b17.addActionListener(new ButtonHandler());

b18.addActionListener(new ButtonHandler());

b19.addActionListener(new ButtonHandler());

b20.addActionListener(new ButtonHandler());

b21.addActionListener(new ButtonHandler());

b22.addActionListener(new ButtonHandler());

b23.addActionListener(new ButtonHandler());

b24.addActionListener(new ButtonHandler());

b25.addActionListener(new ButtonHandler());

b26.addActionListener(new ButtonHandler());

b27.addActionListener(new ButtonHandler());

f.add(b1);

f.add(b2);

f.add(b3);

f.add(b4);

f.add(b5);

f.add(b6);

f.add(b7);

f.add(b8);

f.add(b9);

f.add(b10);

f.add(b11);

f.add(b12);

f.add(b13);

f.add(b14);

f.add(b15);

f.add(b16);

f.add(b17);

f.add(b18);

f.add(b19);

f.add(b20);

f.add(b21);

f.add(b22);

f.add(b23);

f.add(b24);

f.add(b25);

f.add(b26);

f.add(b27);

f.setResizable(false);

f.setSize(260,180);

//窗口居中显示

this.centershow(260,180,f);

f.setVisible(true);

}

public void centershow(int x,int y,Frame f)

{

//窗口居中显示

Toolkit tk=Toolkit.getDefaultToolkit();

Dimension d=tk.getScreenSize();

int screenHeight=d.height;

int screenWidth=d.width;

f.setLocation((screenWidth-x)/2,(screenHeight-y)/2);

}

public void shutwindow(Frame f)

{

//Add a listener for the close event

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent evt)

{

// 退出程序

System.exit(0);

}

});

}

public double getCurrentNum()//得到当前文本框内数字

{

return 1;

}

//四则运算

public double calculateNow(double op1,char op,double op2)

{

double op1b=0.0;

switch(op)

{

case '+':

op1b=op1+op2;

break;

case '-':

op1b=op1-op2;

break;

case '*':

op1b=op1*op2;

break;

case '/':

if(op2==0.0)

op1b=op1;

else

op1b=op1/op2;

break;

case '%':

if(op2==0.0)

op1b=op1;

else

op1b=op1%op2;

break;

case 0:

op1b=op2;

break;

}

return op1b;

}

class ButtonHandler implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

System.out.println("Button's lable is :" + e.getActionCommand()+"||"

+createFrame.this.op1

+createFrame.this.op

+createFrame.this.op2

+"="

+createFrame.this.op3);

String command=e.getActionCommand();

String currentText=text.getText();

if(currentText.equals("函数输入无效.") || currentText.equals("除数不能为零."))

{

currentText="0.";

text.setText(currentText);

}

if(command=="BackSpace")

{

if(currentText.length()>1)

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

else if(currentText.length()<=1)

{

currentText="0.";

}

text.setText(currentText);

}

if(command=="CE")

{

text.setText("0.");

op2=0.0;

//return;

}

if(command=="C")

{

text.setText("0.");

op3=0.0;

op1=0.0;

op2=0.0;

op2x=0.0;

op=0;

opx=0;

opp=0;

firstdeng=true;

b=false;

c=false;

}

if(command=="0")

{

if(text.getText().equals("0."))

{

text.setText("0.");

b=true;

}

else

text.setText(currentText+"0");

}

if(command=="1")

{

if(c)

{

c=false;

text.setText("1");

return;

}

if((text.getText().equals("0.") || text.getText().equals("0")) & !b)

text.setText("1");

else

text.setText(currentText+"1");

}

if(command=="2")

{

if(c)

{

text.setText("2");

c=false;

return;

}

if((text.getText().equals("0.") || text.getText().equals("0")) & !b)

text.setText("2");

else

text.setText(currentText+"2");

//return;

}

if(command=="3")

{

if(c)

{

c=false;

text.setText("3");

return;

}

if((text.getText().equals("0.") || text.getText().equals("0")) & !b)

text.setText("3");

else

text.setText(currentText+"3");

//return;

}

if(command=="4")

{

if(c)

{

c=false;

text.setText("4");

return;

}

if((text.getText().equals("0.") || text.getText().equals("0")) & !b)

text.setText("4");

else

text.setText(currentText+"4");

//return;

}

if(command=="5")

{

if(c)

{

c=false;

text.setText("5");

return;

}

if((text.getText().equals("0.") || text.getText().equals("0")) & !b)

text.setText("5");

else

text.setText(currentText+"5");

//return;

}

if(command=="6")

{

if(c)

{

c=false;

text.setText("6");

return;

}

if((text.getText().equals("0.") || text.getText().equals("0")) & !b)

text.setText("6");

else

text.setText(currentText+"6");

//return;

}

if(command=="7")

{

if(c)

{

c=false;

text.setText("7");

return;

}

if((text.getText().equals("0.") || text.getText().equals("0")) & !b)

text.setText("7");

else

text.setText(currentText+"7");

//return;

}

if(command=="8")

{

if(c)

{

c=false;

text.setText("8");

return;

}

if((text.getText().equals("0.") || text.getText().equals("0")) & !b)

text.setText("8");

else

text.setText(currentText+"8");

//return;

}

if(command=="9")

{

if(c)

{

c=false;

text.setText("9");

return;

}

if((text.getText().equals("0.") || text.getText().equals("0")) & !b)

text.setText("9");

else

text.setText(currentText+"9");

}

if(command=="/")

{

op2=Double.valueOf(text.getText()).doubleValue();

if(opp!='=')

{

op1=calculateNow(op1,op,op2);

opp='/';

}

op='/';

opx='/';

text.setText(String.valueOf(op1));

c=true;

//b=false;

firstdeng=true;

}

if(command=="*")

{

op2=Double.valueOf(text.getText()).doubleValue();

if(opp!='=')

{

op1=calculateNow(op1,op,op2);

opp='*';

}

op='*';

opx='*';

text.setText(String.valueOf(op1));

c=true;

firstdeng=true;

}

if(command=="-")

{

op2=Double.valueOf(text.getText()).doubleValue();

if(opp!='=')

{

op1=calculateNow(op1,op,op2);

opp='-';

}

op='-';

opx='-';

text.setText(String.valueOf(op1));

c=true;

firstdeng=true;

}

if(command=="+")

{

op2=Double.valueOf(text.getText()).doubleValue();

if(opp!='=')

{

op1=calculateNow(op1,op,op2);

opp='+';

}

op='+';

opx='+';

text.setText(String.valueOf(op1));

c=true;

firstdeng=true;

}

if(command==".")

{

if(text.getText().indexOf('.')>1)

return;

else if(text.getText().indexOf('.')==-1)

{

text.setText(currentText+".");

b=true;

}

else if(text.getText().indexOf('.')==1)

b=true;

}

if(command=="+/-")

{

if(Double.valueOf(text.getText()).doubleValue()!=0)

{

double d=-Double.valueOf(text.getText()).doubleValue();

text.setText(String.valueOf(d));

op2=d;

op2x=d;

}

}

if(command=="%")

{

op2=Double.valueOf(text.getText()).doubleValue();

if(op1!=0 & op2!=0)

{

double temp=op1*op2;

temp=temp/100;

text.setText(String.valueOf(temp));

}

}

if(command=="sqrt")

{

double in=Double.valueOf(text.getText()).doubleValue();

if(in<0)

text.setText("函数输入无效.");

else

{

double sd=Math.sqrt(in);

text.setText(String.valueOf(sd));

op2=sd;

op2x=sd;

}

}

if(command=="1/x")

{

double in=Double.valueOf(text.getText()).doubleValue();

if(in==0)

text.setText("除数不能为零.");

else

{

double sd=1/in;

text.setText(String.valueOf(sd));

op2=sd;

op2x=sd;

}

}

if(command=="=")

{

op2=Double.valueOf(text.getText()).doubleValue();

System.out.println("=========="+op2);

if(firstdeng)

{

op2x=op2;

firstdeng=false;

}

op1=calculateNow(op1,op,op2x);

opp='=';

text.setText(String.valueOf(op1));

}

if(command=="MC")

{

mjia=0;

text2.setText("");

}

if(command=="MR")

{

text.setText(String.valueOf(mjia));

}

if(command=="MS")

{

mjia=Double.valueOf(text.getText()).doubleValue();

text2.setText("M");

}

if(command=="M+")

{

mjia=mjia+Double.valueOf(text.getText()).doubleValue();

}

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有