计算器源程序代码

来源:互联网 发布:js文件怎么写jquery 编辑:程序博客网 时间:2024/06/06 16:27

 

 

import java.awt.*;
import java.awt.event.*;

public class computer implements ActionListener{
//定义计算器所需要的得变量
static Frame f;//框架
static Panel p;//面板
static Button button0,button1,button2,button3,button4,button5,button6,
button7,button8,button9,button10,button11,button12,button13,button14,button15;//按钮
static int numflag,rflag,opcode;//整型变量
static float  num1,num2,result;//浮点型变量
static TextField tf;//文本区,用以显示结果
public static void main(String gras[])
{
computer c=new computer();
c.createframe();
c.createpanel();
c.createcom();
c.addcom();
c.addpanel();
num1=0;num2=0;result=0;opcode=0;numflag=1;//初次运行前清零
c.addlistener();

}
public void createframe()//创建框架
{
f=new Frame("计算器");
f.setSize(300,300);
f.setBackground(Color.green);

}

public void createpanel()//创建面板
{
p=new Panel();
p.setSize(240,240);
p.setBackground(Color.blue);
}

public void createcom()//创建按钮及文本框,用以显示0~9和+-*/
{
button1=new Button("1");
button2=new Button("2");
button3=new Button("3");
button4=new Button("4");
button5=new Button("5");
button6=new Button("6");
button7=new Button("7");
button8=new Button("8");
button9=new Button("9");
button0=new Button("0");

button11=new Button("+");
button12=new Button("-");
button13=new Button("*");
button14=new Button("/");
button15=new Button("=");
button10=new Button("清零");
tf=new TextField(15);


}

public void addcom()//将按钮添加到面板
{
p.setLayout(new GridLayout(4,4,1,1));
p.add(button0);
p.add(button15);
p.add(button10);
p.add(button11);
p.add(button1);
p.add(button2);
p.add(button3);
p.add(button12);
p.add(button4);
p.add(button5);
p.add(button6);
p.add(button13);
p.add(button7);
p.add(button8);
p.add(button9);
p.add(button14);

}


public void addpanel()//将面板添加到框架
{
tf.setBounds(10,10,280,40);

f.add("North",tf);f.add("Center",p);
f.setVisible(true);
}

public void addlistener()//将组建与监听器相连
{
button0.addActionListener(this);
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
button5.addActionListener(this);
button6.addActionListener(this);
button7.addActionListener(this);
button8.addActionListener(this);
button9.addActionListener(this);
button10.addActionListener(this);
button11.addActionListener(this);
button12.addActionListener(this);
button13.addActionListener(this);
button14.addActionListener(this);
button15.addActionListener(this);
f.addWindowListener(new MyWindowListener());


}


public void actionPerformed(ActionEvent e)//事件处理方法
{
if(e.getSource()==button0)
{
if(numflag==1) num1=num1*10+0;
             else num2=num2*10+0;}
else if(e.getSource()==button1){  
if(numflag==1) num1=num1*10+1;
             else num2=num2*10+1;}
 else if(e.getSource()==button2){ 
if(numflag==1) num1=num1*10+2;
             else num2=num2*10+2;}
else if(e.getSource()==button3){  
if(numflag==1) num1=num1*10+3;
             else num2=num2*10+3;}
else if(e.getSource()==button4){   
if(numflag==1) num1=num1*10+4;
             else num2=num2*10+4;}
else if(e.getSource()==button5){ 
if(numflag==1) num1=num1*10+5;
             else num2=num2*10+5;}
else if(e.getSource()==button6){ 
if(numflag==1) num1=num1*10+6;
             else num2=num2*10+6;}
else if(e.getSource()==button7){   
if(numflag==1) num1=num1*10+7;
             else num2=num2*10+7;} 
else if(e.getSource()==button8){
if(numflag==1) num1=num1*10+8;
             else num2=num2*10+8;}
else if(e.getSource()==button9){
   

if(numflag==1) num1=num1*10+9;
             else num2=num2*10+9;} 
else if(e.getSource()==button10){ 
num1=0;num2=0;result=0;opcode=0;numflag=1;}
else if(e.getSource()==button11){
num1=Float.parseFloat(tf.getText());
numflag=0;opcode=1;}
else if(e.getSource()==button12){
numflag=0;opcode=2;}
else if(e.getSource()==button13){
numflag=0;opcode=3;}
else if (e.getSource()==button14){
numflag=0;opcode=4;}
else{
num2=Float.parseFloat(tf.getText());
if(opcode==1) result=num1+num2;
else if(opcode==2) result=num1-num2;
else if(opcode==3) result=num1*num2;
else result=num1/num2;

numflag=3;
tf.setText(String.valueOf(result));

}

 

if(numflag==3) tf.setText(String.valueOf(result));
else if(numflag==1) tf.setText(String.valueOf(num1));
else tf.setText(String.valueOf(num2));           
}
}

class  MyWindowListener extends WindowAdapter{//关闭窗口
public void windowClosing(WindowEvent e)
{
System.exit(1);
}
}

原创粉丝点击