网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  利用java做一个简单的计算器     
  文章作者:未知  文章来源:水木森林  
  查看:77次  录入:管理员--2007-11-17  
 

    共两个类。还只是完成+、-、×、÷运算而已。

    gui只是用了awt,很简单,相信一看就能懂了。
calculator.java

public class calculator{
private string result = "0";
private int op = 0,add = 1,sub = 2,mul = 3,div = 4;

private double stringtodouble(string x){
double y = double.parsedouble(x);
return y;
}
private void operate(string x){
double x1 = stringtodouble(x);
double y = stringtodouble(result);
switch (op){
case 0:
result = x;
break;
case 1:
result = string.valueof(y+x1);
break;
case 2:
result = string.valueof(y-x1);
break;
case 3:
result = string.valueof(y*x1);
break;
case 4:
if(x1!=0){
result = string.valueof(y/x1);
}else{
result = "the divisor can't be zero!";
}
break;
}
}

public string opadd(string x){
operate(x);
op = add;
return result;
}
public string opsubtract(string x){
operate(x);
op = sub;
return result;
}
public string opmultiply(string x){
operate(x);
op = mul;
return result;
}
public string opdivide(string x){
operate(x);
op = div;
return result;
}
public string opequals(string x){
operate(x);
op = 0;
return result;
}
public void opclean(){
op = 0;
result = "0";
}
}

-------------------------------------------------------------------

第二个
calculatorgui.java

import java.awt.*;
import java.awt.event.*;
import java.util.eventobject;

public class calculatorgui{
private frame f;
private panel p1,p2;
private button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
private button bpoint,badd,bdec,bmul,bdiv,bcal;
private textfield tf;
private string s,op;
private calculator cal = new calculator();
private boolean ifop;

public calculatorgui(){
f = new frame("calculator");
p1 = new panel();
p2 = new panel();

b0 = new button("0");
b1 = new button("1");
b2 = new button("2");
b3 = new button("3");
b4 = new button("4");
b5 = new button("5");
b6 = new button("6");
b7 = new button("7");
b8 = new button("8");
b9 = new button("9");
bpoint = new button(".");
badd = new button("+");
bdec = new button("-");
bmul = new button("*");
bdiv = new button("/");
bcal = new button("=");

tf = new textfield(25);
tf.seteditable(false);


}

public void launchframe(){
f.setsize(220,160);
f.setresizable(false);
f.addwindowlistener(new mywindowlistener());
p1.setlayout(new flowlayout(flowlayout.center));
p1.add(tf);
f.add(p1,borderlayout.north);
p2.setlayout(new gridlayout(4,4));

b0.addactionlistener(new setlabeltext_actionlistener());
b1.addactionlistener(new setlabeltext_actionlistener());
b2.addactionlistener(new setlabeltext_actionlistener());
b3.addactionlistener(new setlabeltext_actionlistener());
b4.addactionlistener(new setlabeltext_actionlistener());
b5.addactionlistener(new setlabeltext_actionlistener());
b6.addactionlistener(new setlabeltext_actionlistener());
b7.addactionlistener(new setlabeltext_actionlistener());
b8.addactionlistener(new setlabeltext_actionlistener());
b9.addactionlistener(new setlabeltext_actionlistener());
bpoint.addactionlistener(new setlabeltext_actionlistener());
badd.addactionlistener(new setoperator_actionlistener());
bdec.addactionlistener(new setoperator_actionlistener());
bmul.addactionlistener(new setoperator_actionlistener());
bdiv.addactionlistener(new setoperator_actionlistener());
bcal.addactionlistener(new setoperator_actionlistener());

p2.add(b7);
p2.add(b8);
p2.add(b9);
p2.add(badd);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(bdec);
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(bmul);
p2.add(b0);
p2.add(bpoint);
p2.add(bcal);
p2.add(bdiv);
f.add(p2,borderlayout.south);
f.setvisible(true);
}

public void settextfieldtext_temp(){
if (tf.gettext().length()<15 && (tf.gettext().indexof(".")==-1 || !s.equals("."))){
tf.settext(tf.gettext()+s);
}else{
tf.settext((tf.gettext()+s).substring(0,15));
}
}
public void settextfieldtext(){
if(ifop){
ifop = false;
tf.settext("");
settextfieldtext_temp();
}else{
settextfieldtext_temp();
}
}

public static void main(string[] args){
calculatorgui calculator = new calculatorgui();
calculator.launchframe();
}

class mywindowlistener extends windowadapter{
public void windowclosing(windowevent e){
system.exit(0);
}
}

class setlabeltext_actionlistener implements actionlistener{
public void actionperformed(actionevent e){
button tempb = (button)e.getsource();
s = tempb.getlabel();
settextfieldtext();
}
}

class setoperator_actionlistener implements actionlistener{
public void actionperformed(actionevent e){
button tempb = (button)e.getsource();
op = tempb.getlabel();
if(op.equals("+")){
tf.settext(cal.opadd(tf.gettext()));
ifop = true;
}else if(op.equals("-")){
tf.settext(cal.opsubtract(tf.gettext()));
ifop = true;
}else if(op.equals("*")){
tf.settext(cal.opmultiply(tf.gettext()));
ifop = true;
}else if(op.equals("/")){
tf.settext(cal.opdivide(tf.gettext()));
ifop = true;
}else if(op.equals("=")){
tf.settext(cal.opequals(tf.gettext()));
ifop = true;
}
}
}
}

 
 
上一篇: collection类的使用总结    下一篇: 编写高级 jscript应用代码
  相关文档
java基本名词解释 11-17
使用技巧:怎样用jxta技术建立p2p网络 11-16
用jni实现一个高精度的java计时器 11-17
java编程规范(1) 11-17
捕获音频及输出音频 11-17
java程序员的新挑战:ibm推出新的国际认证 11-17
使用jaxb从一个对象模型中产生xml文档 11-17
玩转java的classpath(一)classpath基础 11-16
使用java语言快速开发linux gui的应用 11-16
j2ee mvc模式jsf与struts的异同 11-16
《j2ee核心模式》(dao模式) 11-17
使用jsf(java server faces)开发(二) 11-17
开动脑筋:java字符丢失的解决办法 11-16
j2ee项目中如何组建开发团队 11-17
关于窗口的操作详谈 11-17
用.net构建windows ce应用程序 11-17
用jsp动态输出excel文档和中文乱码问题的解决 11-17
java套接字编程(下)(1) 11-17
swing简介 11-17
重载与覆盖 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息