欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《Java编程实践》PPT课件.ppt

    • 资源ID:5577024       资源大小:452.50KB        全文页数:43页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《Java编程实践》PPT课件.ppt

    1,Java 编程实践,计算器的实现,CCIT软件学院 软件教研室,1,计算器(Applet实现),学习目标理解并掌握Java中的类、对象、继承、方法等概念,以及Applet的基本框架和事件处理的方法学会使用JDK编写、调试和运行Java Applet应用程序 利用awt组件编写一个计算器,实现基本的四则运算,1,计算器(Applet实现),编程要求用编辑工具编写Java代码,在环境下编译运行,实现应用程序指定的功能 程序代码格式整齐规范、便于阅读 程序注释完整规范、简明易懂,1,计算器(Applet实现),学习内容1.回顾 AWT组件及事件编程方法的事件处理Java1.1的事件处理2.Applet编程方法3.相关类与方法4.程序实现5.总结,1,的事件处理,使用单一的java.awt.Event类来接受所有类型的事件;使用action(),handleEvent()以及其他的一些事件处理方法(如鼠标事件、键盘事件、焦点事件)来进行相应事件的事件处理。缺点:造成长if分支语句组,不利于面向对象的编程,1,Java1.1 对事件处理的改进,引入包更加面向对象,易于理解定义了事件的“发生者”和“监听者”对象 按钮事件、文本事件、选择事件、调整事件、鼠标事件、键盘事件等事件以类层次来表达,取代了1.0.2中的单一的 类,并可以自定义事件类型,1,事件及处理机制,用户操作GUI组件时会引发各种事件。事件:描述“发生了什么事情”的对象。系统根据用户的操作构造出相应事件类的对象。事件源:事件的产生地。事件处理程序:是一个方法,它接收一个事件对象、分析它、并完成对该事件的处理。每个事件有一个相应的监听者接口,它规定了能够接收(并处理)该类事件的方法的规范。监听者:实现了监听者接口的类,它包含有事件处理 程序。编程人员要为事件源指定监听者对象(即指定处理某种事件的事件处理程序)。,1,事件及处理机制,组件(事件发生者)触发一个相应类型的事 件此事件由相应类型的Listener(事件监听者)接收并处理,1,事件及处理机制,调用按扭的 addActionListener()方法,为该按扭指定监听者。,1,几个有用的概念,事件 在包中定义了若干类型 的事件类监听者接口 特定类型的Listener接口,用于 监听特定类型的事件监听者类 是实现了某种监听者接口的类,由编程者定义事件监听者 是某个监听者类的对象,由编 程者使用new创建,1,实现步骤,根据需要定义相应类型的监听者类,在类的 定义中完成事件的处理;创建事件监听者对象;为将会触发事件的组件C注册相应的事件监听 者对象(使用C的addXXXListener()方法)。例:ButtonAct.java,1,public class ButtonAct extends Frame.public ButtonAct()./为b1注册事件监听者B1b1.addActionListener(new B1();add(b1);./利用inner class结构定义监听者类 class B1 implements ActionListener/利用actionPerformed方法进行事件处理public void actionPerformed(ActionEvent e)who.setText(Button 1);./:,1,事件与监听者类型,XXXListener接口与XXXEventXXX为特定类型常用类型:Action,Item,Focus,Key,Window,MouseEvent vs.Mouse/MouseMotionListener注册与取消:组件包含的新方法 addXXXListener()与removeXXXListener(),1,监听者接口中有什么?,每种Listener接口均定义了一套abstract方法,编程者必须在监听者类中实现这些方法来做事 件处理;例:ActionListener:actionPerformed()WindowListener:windowOpened/Closing/Closed/Activated/Deactivated/Iconified/Deiconified(),1,事件类,ActionEvent类:属于动作事件,包括:点击按钮;双击一个列表中的选项;选择菜单项;在文本框中按回车。最典型的例子是:鼠标点击按钮所产生的事件,经ActionListener接口触发一连串动作,再由actionPerformed()方法完成这些动作。e.getSource()返回事件发生的对象(名)e.getActionCommand()返回按扭名(动作事 件的命令字符串)。ActionListener 接口public void actionPerformed(ActionEvent e),1,2.Applet编程,Applet的生命周期及方法Applet的绘图Applet类的层次Applet程序的运行,1,Applet的生命周期,构造方法,vs.,init()方法,结论:构造方法的执行时间早于init(),1,Applet生命周期各方法,Applet的建立、释放init():初始化,Applet被浏览器载入时运行start():启动Applet,每次回到当前页时运行stop():暂停Applet,每次离开当前页时执行destroy():释放对象资源,关浏览器时执行生命周期称为Applet的主线程一般由Browser或appletviewer自动调用,1,Applet的绘图周期,绘图周期称为AWT线程Applet一开始运行,就自动启动了这两个线程,1,Applet类,Applet类的层次结构.Container.Panel.AppletApplet小程序的实现:extends Applet,1,Applet的GUI编程,Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。Applet容器的缺省布局策略与Panel一致,都是FlowLayOut。可放置简单构件(Label、Button等)以及其他非顶层容器(Panel);可绘制用户自定义成分(绘制图形、文字、显示图象)事件处理,1,Applet执行方式,Applet编译生成的字节码文件(.class)存储于Web Server.class文件名嵌在HTML页面中当Web Client的Browser下载并显示含有Applet的HTML时,将自动执行该Applet:显示动画声音,响应用户事件,1,将Applet嵌入HTML,HTML文件可以向它所嵌入的Applet传递参数,这个任 务是通过HTML文件的一个专门标记来完成,1,3.相关类与方法,Appletinit()TextFieldString getText()继承于TextComponentvoid setText(String t)Componentvoid setBackground(Color c)void setForeground(Color c)void setBounds(int x,int y,int width,int height)Color.gray(blue,pink,green)常数,1,3.相关类与方法,Containervoid setLayout(LayoutManager mgr)add(Component comp)ActionEventString getActionCommand()Object getSource()继承于EventObjectButtonvoid addActionListener(ActionListener L)Doubledouble doubleValue(),1,4.程序实现,1).定义相关组件和变量2).Applet的初始化(init)3).事件处理(actionPerformed)4).其他自定义方法方法:doOperator,doClear,doForeScreen,1,4.程序实现-基本过程,1)输入数据ForeScreen2)输入运算符OpCurrentForeScreenBackScreen(第一运算数),ForeScreen=OpCurrentOpPre3)输入数据ForeScreen4)输入运算符OpCurrent,BackScreen,OpPre,ForeScreen,运算,运算结果BackScreen,ForeScreen=OpCurrentOpPre,1,4.程序实现-事件处理流程,1,4.程序实现-运算过程,1,1).定义相关组件和变量,/用于显示输入和输出的文本框 private TextField tfAnswer;/按钮:数字“0”-“9”private Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;/按钮:依次为-“.”,“=”,“+”,“-”,“C”,“*”,“/”private Button bPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision;/当前输入的运算符,前一个运算符 private String OperatorCurrent,OperatorPre;/运算符前后的两个运算数(ForeScreen称为第二运算数,BackScreen称为第一运算数)private String ForeScreen,BackScreen;/输入数据是否为浮点数 private boolean isFloat=false;,1,2).Applet的初始化,public void init()OperatorCurrent=new String();OperatorPre=new String();ForeScreen=new String();BackScreen=new String();/设置Applet组件的背景色和前景色 this.setBackground(Color.gray);this.setForeground(Color.blue);setLayout(null);/布局设置 tfAnswer=new TextField();/定义文本框组件的位置(x,y)和大小(宽width,高度height)tfAnswer.setBounds(5,5,100,20);/将文本框组件加入到Appletadd(tfAnswer);,/第1排按钮 bClear=new Button(C);bClear.setBounds(5,30,20,20);bClear.setBackground(Color.pink);bClear.addActionListener(this);add(bClear);bDivision=new Button(/);bDivision.setBounds(30,30,20,20);bDivision.setBackground(Color.green);bDivision.addActionListener(this);add(bDivision);bMulti=new Button(*);bMulti.setBounds(55,30,20,20);bMulti.setBackground(Color.green);bMulti.addActionListener(this);add(bMulti);bMinus=new Button(-);bMinus.setBounds(80,30,20,20);bMinus.setBackground(Color.green);bMinus.addActionListener(this);add(bMinus);,1,/第2排按钮 b7=new Button(7);b7.setBounds(5,55,20,20);b7.addActionListener(this);add(b7);b8=new Button(8);b8.setBounds(30,55,20,20);b8.addActionListener(this);add(b8);b9=new Button(9);b9.setBounds(55,55,20,20);b9.addActionListener(this);add(b9);/第3排按钮 b4=new Button(4);b4.setBounds(5,80,20,20);b4.addActionListener(this);add(b4);b5=new Button(5);b5.setBounds(30,80,20,20);b5.addActionListener(this);add(b5);b6=new Button(6);b6.setBounds(55,80,20,20);b6.addActionListener(this);add(b6);bPlus=new Button(+);bPlus.setBounds(80,55,20,45);bPlus.setBackground(Color.green);bPlus.addActionListener(this);add(bPlus);,/第4排按钮 b1=new Button(1);b1.setBounds(5,105,20,20);b1.addActionListener(this);add(b1);b2=new Button(2);b2.setBounds(30,105,20,20);b2.addActionListener(this);add(b2);b3=new Button(3);b3.setBounds(55,105,20,20);b3.addActionListener(this);add(b3);/第5排按钮 b0=new Button(0);b0.setBounds(5,130,45,20);b0.addActionListener(this);add(b0);bPoint=new Button(.);bPoint.setBounds(55,130,20,20);bPoint.addActionListener(this);add(bPoint);bEqual=new Button(=);bEqual.setBounds(80,105,20,45);bEqual.setBackground(Color.green);bEqual.addActionListener(this);add(bEqual);,1,3).事件处理方法,public void actionPerformed(ActionEvent e)String s=new String();if(e.getSource()instanceof Button)/如果事件来源为按钮/按钮为数字和“.”if(e.getSource()=b0)|(e.getSource()=b1)|(e.getSource()=b2)|(e.getSource()=b3)|(e.getSource()=b4)|(e.getSource()=b5)|(e.getSource()=b6)|(e.getSource()=b7)|(e.getSource()=b8)|(e.getSource()=b9)|(e.getSource()=bPoint)/按钮为数字,追加到输入的数据后 if(e.getSource()!=bPoint)s=e.getActionCommand();doForeScreen(s);,1,/按钮为“.”且之前没有输入过“.”,将小数点“.”追加到输入的数据后 if(e.getSource()=bPoint),1,/按钮为运算符 if(e.getSource()=bMulti)|(e.getSource()=bDivision)|(e.getSource()=bPlus)|(e.getSource()=bMinus)/如果已有第二运算数则保存当前运算符,进行运算 if(ForeScreen!=)OperatorCurrent=e.getActionCommand();doOperator();/否则(如连续两次输入运算符或输入“=”运算后再输入运算符),保存新输入的运算符到OperatorPre else OperatorPre=e.getActionCommand();return true;,1,4).其他自定义方法,/方法:doForeScreen/功能:每次点击按钮0-9之后将文本追加到变量ForeScreen,并显示在文本框中 public void doForeScreen(String s)ForeScreen+=s;tfAnswer.setText(ForeScreen);/方法:doClear/功能:点击按钮C后,执行清除文本框和其他存储的变量,回到初始状态 public void doClear()OperatorCurrent=;OperatorPre=;ForeScreen=;BackScreen=;isFloat=false;tfAnswer.setText(ForeScreen);,1,4).其他自定义方法,/方法:doOperator/功能:利用运算数和运算符进行运算以得到结果 public void doOperator()double dFore,dBack;Double d;if(OperatorPre.equals()/如果OperatorPre为空(还没有再次输入运算符或“=”),则将当前文本框中的数据保存到BackScreen(第一个运算数),第二运算数置为空BackScreen=ForeScreen;ForeScreen=;tfAnswer.setText(BackScreen);else,1,if(ForeScreen.equals(),1,if(OperatorPre.equals(*)d=new Double(dBack*dFore);tfAnswer.setText(d.toString();if(OperatorPre.equals(/)d=new Double(dBack/dFore);tfAnswer.setText(d.toString();/运算后将结果作为第一运算数,而第二运算数置为空 ForeScreen=;BackScreen=tfAnswer.getText();/将输入的运算符OperatorCurrent赋给OperatorPre,等待再次输入运算符,以备运算 OperatorPre=OperatorCurrent;,1,计算器,编辑java代码编译编辑HTML文件运行,1,计算器,总结:由于本程序事件处理比较简单,只有按钮点击事件,采用Java1.1事件处理模型本程序为Applet程序,只能嵌入到HTML中让浏览器来执行,最好能用窗体实现本程序只实现基本的四则运算,和windows附件中的计算器还有很大差距,最好能实现科学型,并有菜单控制,能独立作为一个程序执行,1,计算器,作业(上机练习)编程实现Applet计算器改进和优化利用Swing组件实现(并可在窗体中运行)实现科学型计算器,1,下课!,

    注意事项

    本文(《Java编程实践》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开