java图形界面AWT编写计算器
程序员文章站
2024-03-08 20:01:04
一、前言
1)这个计算器是基于java语言下图形界面awt编写的。其实我认为写这个计算器,实现什么功能不重要,市场也不缺这个计算器,而是在于对awt中三大布局的及画板...
一、前言
1)这个计算器是基于java语言下图形界面awt编写的。其实我认为写这个计算器,实现什么功能不重要,市场也不缺这个计算器,而是在于对awt中三大布局的及画板的使用简单控件的操作使用。通过联系熟悉掌握awt基础为深入学习打下基础。这个计算器功能也十分简单,空有其表。不过有兴趣的话可以继续添加功能完善操作等。
2)使用平台:主要使用myeclipse2014
3)主要知识点:java 基础; awt+swing
二、功能实现及代码展示
1)主要是layout布局的练习,对画板文本框的使用,以及控件button的事件的注册与监听。因为功能也很简单,所以代码就简写到同一个类里了。实现了基本的四则运算。
2)代码如下:
import java.awt.borderlayout; import java.awt.gridlayout; import java.awt.textfield; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jpanel; import java.awt.color; public class jisuanji { private jframe frame; //声明相关布局面板 private jpanel panelwest; private jpanel panelcenter; private jpanel paneleast; private textfield tf; private jbutton buttonzero; //声明按钮控件 private jbutton buttondot; private jbutton buttonequal; private jbutton buttonplus,buttonminus,buttonmultiple,buttondevision,buttonsin,buttontozero; private jbutton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix,buttonseven,buttoneight,buttonnine; private buttonlistener listener; //声明监听事件 public static void main(string args[]){ new jisuanji(); } public jisuanji(){ initview(); //实例化相关对象 setcenter(); //布局添加控件及相关控件处理 setwest(); seteast(); addlistener(); //设置监听 setframe(); //对 frame设置布局及显示处理 } class buttonlistener implements actionlistener{ int biaozhi=0; //初始化相关变量 double flag1=0,flag2=0,flag3=0; //@override public void actionperformed(actionevent e){ //(1)通过 e.getsource(),获取点击事件的按钮来源,作出相应处理 if(e.getsource()==buttondot){ tf.settext("0."); } if(e.getsource()==buttontozero){ tf.settext(""); } if(e.getsource()==buttonzero){ tf.settext(tf.gettext()+"0"); flag1=double.parsedouble(tf.gettext()); } else if(e.getsource()==buttonone){ tf.settext(tf.gettext()+"1");//文本框显示1、2、3.。。 flag1=double.parsedouble(tf.gettext()); } else if(e.getsource()==buttontwo){ tf.settext(tf.gettext()+"2"); flag1=double.parsedouble(tf.gettext()); } else if(e.getsource()==buttonthree){ tf.settext(tf.gettext()+"3"); flag1=double.parsedouble(tf.gettext()); } else if(e.getsource()==buttonfour){ tf.settext(tf.gettext()+"4"); flag1=double.parsedouble(tf.gettext()); } else if(e.getsource()==buttonfive){ tf.settext(tf.gettext()+"5"); flag1=double.parsedouble(tf.gettext()); } else if(e.getsource()==buttonsix){ tf.settext(tf.gettext()+"6"); flag1=double.parsedouble(tf.gettext()); } else if(e.getsource()==buttonseven){ tf.settext(tf.gettext()+"7"); flag1=double.parsedouble(tf.gettext()); } else if(e.getsource()==buttoneight){ tf.settext(tf.gettext()+"8"); flag1=double.parsedouble(tf.gettext()); } else if(e.getsource()==buttonnine){ tf.settext(tf.gettext()+"9"); flag1=double.parsedouble(tf.gettext()); } if(e.getsource()==buttonplus){ tf.settext(""); flag2=flag1; biaozhi=0; } if(e.getsource()==buttonminus){ tf.settext(""); flag2=flag1; biaozhi=1; } if(e.getsource()==buttonmultiple){ tf.settext(""); flag2=flag1; biaozhi=2; } if(e.getsource()==buttondevision){ tf.settext(""); flag2=flag1; biaozhi=3; } if(e.getsource()==buttonsin){ flag3=math.sin(flag1); tf.settext(flag3+""); } if(e.getsource()==buttonequal){ if(biaozhi==0){ flag3=flag2+flag1; } if(biaozhi==1){ flag3=flag2-flag1; } if(biaozhi==2){ flag3=flag2*flag1; } if(biaozhi==3){ flag3=flag2/flag1; } tf.settext(flag3+""); } } } private void initview(){ /** * 创建框架、小容器对象、按钮对象 */ tf = new textfield(30);//初始化界面宽度 frame = new jframe("简易计算机"); panelcenter = new jpanel(); panelwest = new jpanel(); paneleast = new jpanel(); listener = new buttonlistener(); //实例化监听对象 } private void setcenter(){ //(1)初始化控件显示值 buttonone=new jbutton("1"); buttontwo=new jbutton("2"); buttonthree=new jbutton("3"); buttonfour=new jbutton("4"); buttonfive=new jbutton("5"); buttonsix=new jbutton("6"); buttonseven=new jbutton("7"); buttoneight=new jbutton("8"); buttonnine=new jbutton("9"); //(2)设置布局样式 panelcenter.setlayout(new gridlayout(3,3));//根据内容多少来布局 //(3)*布局添加控件按钮 panelcenter.add(buttonone); panelcenter.add(buttontwo); panelcenter.add(buttonthree); panelcenter.add(buttonfour); panelcenter.add(buttonfive); panelcenter.add(buttonsix); panelcenter.add(buttonseven); panelcenter.add(buttoneight); panelcenter.add(buttonnine); } private void seteast(){ //(1)设置控件显示符号 buttonplus=new jbutton("+"); buttonminus=new jbutton("-"); buttonmultiple=new jbutton("*"); buttondevision=new jbutton("/"); buttonsin=new jbutton("sin"); buttontozero=new jbutton("清除"); //(2)设置布局样式 paneleast.setlayout(new gridlayout(3,2)); //(3)右布局添加相应按钮控件 paneleast.add(buttonplus); paneleast.add(buttonminus); paneleast.add(buttonmultiple); paneleast.add(buttondevision); paneleast.add(buttonsin); paneleast.add(buttontozero); } private void setwest(){ //(1)初始化控件显示值 buttonzero=new jbutton("0"); buttondot=new jbutton("."); buttonequal = new jbutton("="); //(2)对这三个按钮设置布局 panelwest.setlayout(new gridlayout(3,1)); //(3)左边布局添加按钮控件,将三个按钮添加入布局 panelwest.add(buttonzero); panelwest.add(buttondot); panelwest.add(buttonequal); } private void addlistener(){ //(1)对 1-9对应的按钮添加监听 buttonone.addactionlistener(listener); buttontwo.addactionlistener(listener); buttonthree.addactionlistener(listener); buttonfour.addactionlistener(listener); buttonfive.addactionlistener(listener); buttonsix.addactionlistener(listener); buttonseven.addactionlistener(listener); buttoneight.addactionlistener(listener); buttonnine.addactionlistener(listener); //(2)对运算符对应的按钮添加监听 buttonplus.addactionlistener(listener); buttonminus.addactionlistener(listener); buttonmultiple.addactionlistener(listener); buttondevision.addactionlistener(listener); buttonsin.addactionlistener(listener); buttontozero.addactionlistener(listener); //(3)对其与的符号对应的按钮监听 buttonzero.addactionlistener(listener); buttondot.addactionlistener(listener); buttonequal.addactionlistener(listener); } private void setframe(){ frame.setlayout(new borderlayout()); //将准备的不同方位的内容加入大框架 frame.add(paneleast,"east"); frame.add(tf,borderlayout.north); frame.add(panelwest,borderlayout.west); frame.add(panelcenter,borderlayout.center); //设置颜色 tf.setbackground(color.green); frame.pack(); //将框架展开 frame.setlocation(500,500); //程序框架在屏幕的位置 frame.setdefaultcloseoperation(jframe.exit_on_close); //退出进程,不加此句,关闭页面但程序进程仍在后台运行 frame.setvisible(true); //一个图形界面默认都是不可见的,setvisible是把图形界面设置为可见 } }
代码测试可用。
三、演示与效果
1)运行界面如下:
当然了图形界面大小位置可调,也可初始化其位置与大小。
2)简单测试四则运算:11*12
好像简单的不能再简单了。这个计算器写下来重点是布局的联系与button的简单使用。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。