java--简易计算器图形实现
2013-10-02 09:03
232 查看
用java编写简易计算机很容易,但要实现图形化,就要增加一些组件,需要用到Applet
源代码如下:
package applet;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class MicroComputer extends Applet implements ActionListener{
Panel buttonPanel;
TextField tf;
Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,bdot,bplus,bsub,bdiv,bmulti,bequal;
String onDisplay="";//显示文本框中的字符串
boolean isDotPressed=false;//.是否按下
float input;//通过按键输入的数
float input1,input2;//计算用的操作数
char input3;//操作符
float result;//计算结果
int times=1;
public void init(){
setLayout(new BorderLayout(5,5));
tf=new TextField(30);
add(tf,BorderLayout.NORTH);
buttonPanel=new Panel();
buttonPanel.setLayout(new GridLayout(4,4,5,5));
add(buttonPanel,BorderLayout.CENTER);
b1=new Button("7");
buttonPanel.add(b1);
b1.addActionListener(this);
b1.setActionCommand("7");
b2=new Button("8");
buttonPanel.add(b2);
b2.addActionListener(this);
b2.setActionCommand("8");
b3=new Button("9");
buttonPanel.add(b3);
b3.addActionListener(this);
b3.setActionCommand("9");
bplus=new Button("/");
buttonPanel.add(bplus);
bplus.addActionListener(this);
bplus.setActionCommand("/");
b4=new Button("4");
buttonPanel.add(b4);
b4.addActionListener(this);
b4.setActionCommand("4");
b5=new Button("5");
buttonPanel.add(b5);
b5.addActionListener(this);
b5.setActionCommand("5");
b6=new Button("6");
buttonPanel.add(b6);
b6.addActionListener(this);
b6.setActionCommand("6");
bsub=new Button("*");
buttonPanel.add(bsub);
bsub.addActionListener(this);
bsub.setActionCommand("*");
b7=new Button("1");
buttonPanel.add(b7);
b7.addActionListener(this);
b7.setActionCommand("1");
b8=new Button("2");
buttonPanel.add(b8);
b8.addActionListener(this);
b8.setActionCommand("2");
b9=new Button("3");
buttonPanel.add(b9);
b9.addActionListener(this);
b9.setActionCommand("3");
bmulti=new Button("-");
buttonPanel.add(bmulti);
bmulti.addActionListener(this);
bmulti.setActionCommand("-");
b0=new Button("0");
buttonPanel.add(b0);
b0.addActionListener(this);
b0.setActionCommand("0");
bdot=new Button(".");
buttonPanel.add(bdot);
bdot.addActionListener(this);
bdot.setActionCommand(".");
bequal=new Button("=");
buttonPanel.add(bequal);
bequal.addActionListener(this);
bequal.setActionCommand("=");
bdiv=new Button("+");
buttonPanel.add(bdiv);
bdiv.addActionListener(this);
bdiv.setActionCommand("+");
}
@Override
public void actionPerformed(ActionEvent e) {
String str=e.getActionCommand();
char b=str.charAt(0);
switch(b){
case '0' :
case '1' :
case '2' :
case '3' :
case '4' :
case '5' :
case '6' :
case '7' :
case '8' :
case '9' : onDisplay+=b;
input=input*10+Integer.parseInt(str);
if(isDotPressed) times*=10;
tf.setText(onDisplay);
break;
case '.' : onDisplay+=b;
isDotPressed=true;
tf.setText(onDisplay);
break;
case '+' :
case '-' :
case '*' :
case '/' : input3=b;
input1=input/times;
onDisplay="";
times=1;
isDotPressed=false;
input=0;
break;
case '=': input2=input/times;
switch(input3){
case '+' : result=input1+input2; break;
case '-' : result=input1-input2; break;
case '*' : result=input1*input2; break;
case '/' : result=input1/input2; break;
}
tf.setText(Float.toString(result));
onDisplay="";
times=1;
isDotPressed=false;
input=0;
break;
}
}
}
源代码如下:
package applet;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class MicroComputer extends Applet implements ActionListener{
Panel buttonPanel;
TextField tf;
Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,bdot,bplus,bsub,bdiv,bmulti,bequal;
String onDisplay="";//显示文本框中的字符串
boolean isDotPressed=false;//.是否按下
float input;//通过按键输入的数
float input1,input2;//计算用的操作数
char input3;//操作符
float result;//计算结果
int times=1;
public void init(){
setLayout(new BorderLayout(5,5));
tf=new TextField(30);
add(tf,BorderLayout.NORTH);
buttonPanel=new Panel();
buttonPanel.setLayout(new GridLayout(4,4,5,5));
add(buttonPanel,BorderLayout.CENTER);
b1=new Button("7");
buttonPanel.add(b1);
b1.addActionListener(this);
b1.setActionCommand("7");
b2=new Button("8");
buttonPanel.add(b2);
b2.addActionListener(this);
b2.setActionCommand("8");
b3=new Button("9");
buttonPanel.add(b3);
b3.addActionListener(this);
b3.setActionCommand("9");
bplus=new Button("/");
buttonPanel.add(bplus);
bplus.addActionListener(this);
bplus.setActionCommand("/");
b4=new Button("4");
buttonPanel.add(b4);
b4.addActionListener(this);
b4.setActionCommand("4");
b5=new Button("5");
buttonPanel.add(b5);
b5.addActionListener(this);
b5.setActionCommand("5");
b6=new Button("6");
buttonPanel.add(b6);
b6.addActionListener(this);
b6.setActionCommand("6");
bsub=new Button("*");
buttonPanel.add(bsub);
bsub.addActionListener(this);
bsub.setActionCommand("*");
b7=new Button("1");
buttonPanel.add(b7);
b7.addActionListener(this);
b7.setActionCommand("1");
b8=new Button("2");
buttonPanel.add(b8);
b8.addActionListener(this);
b8.setActionCommand("2");
b9=new Button("3");
buttonPanel.add(b9);
b9.addActionListener(this);
b9.setActionCommand("3");
bmulti=new Button("-");
buttonPanel.add(bmulti);
bmulti.addActionListener(this);
bmulti.setActionCommand("-");
b0=new Button("0");
buttonPanel.add(b0);
b0.addActionListener(this);
b0.setActionCommand("0");
bdot=new Button(".");
buttonPanel.add(bdot);
bdot.addActionListener(this);
bdot.setActionCommand(".");
bequal=new Button("=");
buttonPanel.add(bequal);
bequal.addActionListener(this);
bequal.setActionCommand("=");
bdiv=new Button("+");
buttonPanel.add(bdiv);
bdiv.addActionListener(this);
bdiv.setActionCommand("+");
}
@Override
public void actionPerformed(ActionEvent e) {
String str=e.getActionCommand();
char b=str.charAt(0);
switch(b){
case '0' :
case '1' :
case '2' :
case '3' :
case '4' :
case '5' :
case '6' :
case '7' :
case '8' :
case '9' : onDisplay+=b;
input=input*10+Integer.parseInt(str);
if(isDotPressed) times*=10;
tf.setText(onDisplay);
break;
case '.' : onDisplay+=b;
isDotPressed=true;
tf.setText(onDisplay);
break;
case '+' :
case '-' :
case '*' :
case '/' : input3=b;
input1=input/times;
onDisplay="";
times=1;
isDotPressed=false;
input=0;
break;
case '=': input2=input/times;
switch(input3){
case '+' : result=input1+input2; break;
case '-' : result=input1-input2; break;
case '*' : result=input1*input2; break;
case '/' : result=input1/input2; break;
}
tf.setText(Float.toString(result));
onDisplay="";
times=1;
isDotPressed=false;
input=0;
break;
}
}
}
相关文章推荐
- Java实现的3D计算机图形类库与引擎
- Java---实现运行任意目录下class中加了@MyTest的空参方法(实现图形界面)
- Java实现简易计算器
- 分享java打印简单图形的实现代码
- 【数据结构】图形的多种表示方法及其java实现之相邻表法
- Java---实现运行任意目录下class中加了@MyTest的空参方法(实现图形界面)
- java学习之实现简单的图形界面
- 在Java中使用JGraph实现图形绘制
- 十分给力jquery插件miniui框架整合java实现各种图形报表管理系统
- Java图形设计中,利用Bresenham算法实现直线线型,线宽的控制(NO 2D GRAPHICS)
- Highcharts实现图形报表(我主要实现javaweb开发的图形报表)
- 【JAVA开发技术进阶】 Java实现运行任意目录下class中加了@MyTest的空参方法(实现图形界面)
- Java 实现图形界面的邮件轰炸机
- Java图形程序中的对话逐字显示实现
- java web开发之servlet图形验证码功能的实现
- java实现图形记事本
- Java中常见图形绘制方式与实现
- java实现简易计算器
- java开发系统内核:实现窗口图形绘制API
- Java图形程序中的对话逐字显示实现