java语言第二次补充_第1页
java语言第二次补充_第2页
java语言第二次补充_第3页
java语言第二次补充_第4页
java语言第二次补充_第5页
已阅读5页,还剩44页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3Calendar会使用Calendar类正确表示时Date类的定义和使用String会正确使用String类和StringBuffer类表示Web时程序设已有Web时钟显示程序(MyJavaApplet),且已将编译得到的字节码文件件放在同一个文件夹中(设为Java)。JavaIEAppletInclude.htm文件他成分。AppletViewerDOSAppletViewer打开网页的批处理文件(runhtml.bat),也放在Java文件夹中。3.1程序运行结程序运行后,Applet窗体上显示取自系统的日期、星期和时间,且时间的显示是动态实现3行显示,第一行显示年、月、日,第二行显示星期,第三行显示不断更新的系统时间。run()paint()方法中设置,并在该方法importjava.awt.*;importjava.applet.*;importjava.awt.*;importjava.applet.*;import{classMyJavaAppletextendsAppletThreadtimeThread;//定义一个线FontwordFont;//定义字intyear,month,day;//定义年、月、日intweekday;//定义星期inthour,minute,second;//定义时、分、秒publicvoidinit(){//初始化背景颜wordFont=newFont("楷体}publicvoid{{timeThread=new}}publicvoid{{}}publicvoid{{Calendartime=Calendar.getInstance();3章{//线程睡眠300ms}}}publicvoidpaint(Graphics{Strings1=year+"年"+month+"月"+day+"日";Strings2="星期"+weekday;Strings3=hour+":"+minute+":"+second;}}程序由引入和主类构成由于是Applet程序,因而要引入java.applet包和java.awt包中的系统预定义类,主类要继承系统预定义的Applet类,且实现了接口Runnable;由于要获取系统时间,因而要引入java.util.Calendar。择【JavaFile】选项,输入程序名“MyJavaApplet”,并选择工作位置为“Java”文件夹,保存文件。选择【Build】|【CompileFile】菜单命令进行编译,错误,可按照编译提示信息进行修改,然后保存并重新编译,直到提示“Processcompleted”,编译成功。3章【New】按钮,在出现的框上,选择Files选项卡,在该选项卡上选择【HTMLFile】选项,输入网页文件名AppletInclude,并选择工作位置为“Java”文件夹,单击【确定】也可使JavaJDKAppletViewer工具打开网页,只运行网页上的Applet成分,在DOS控制台进入“Java”后输入如下命令:c:\JBuilder9\jdk1.4\bin\AppletViewerJBuilderJDKc:\JBuilder9\jdk1.4,AppletViewer工具在bin子下,若安装时指定了其他的路径或采用独立的JDK,则修改为相应为方便使用,可以将该DOS命令做到一个批处理文件中(设为runhtml.bat)。打开记事本,代码及分析域部ThreadThreadintintFontintintintintinit60。start()方法和stop(){timeThread=new}timeThreadtimeThreadstart()来启动线程。{}这段程序放在stop()方法中,用于终止线程,通过timeThread!=null来判断线程是否不为空,如果线程不为空,就通过在start()方法中生成的timeThread对象来调用stop()方法终止状态的0值。run() {//线程睡眠300ms}3章paint() 参数“s1s1,2050用于说明从显示窗口的(20,50)这相关1.CalenderCalendar历对象time。publicfinalvoidset(intyear,intmonth,intdate):将时间设定为year年,month月,datemonth月,date日,hour时,minutepublicfinalvoidset(intyear,intmonth,intdateinthourintminute,intsecond):将时间设定为year年,month月,date日,hour时,minute分,second秒。Calendar的静态常Calendar生成的对象调time.get(Calendar.YEAR)0~11011,则表示3章////线程}}=new创建Thread类对象,指定该类的对象作参数。例如 DateDate类在java.utilDate类的无参数构造方法创建的对象可以获取本地当前 Datenowtime=new 用Date的构造方法Daongtime)创建的Date对象是相对1970年1月1日0点(GMT)time60×60×1000sThuJan0101:00:00GMT1970。点(GMT)到目前时刻所走过的毫秒数。 对象表示时间的默认顺序是:星期、月、日、小时、分、秒、年。例如:SunMar2323:13:43CST2008DateFormat的子类对于此方法,需要注意pattern是规定格式的字符序列,例如:SimpleDateFormatnowtime=newSimpleDateFormattime':yyyy-MM-dd");pattern中可以包含的字符序列有:HHH:表示用两位数字输出小时。m或mm:表示用两位数字输出分。s或ss:表示用两位数字输出秒。E:防止命名Java的类只有在不同的包中才可以同名。如果没有包,很难保证在重命名中产生的冲突。例如,APoint。B也要定义一个点的类,也会用好管理多了。A定义一Point类,封装在A中。B也定Point,封装在B中。B.Point分别对应于AB定义的Point类。源文件定义的类所在的包。package语句的一般格式为: 包名package语句,源文件中所定义命名的类被隐含地认为是无名包packagesunrise; ..\sun\com\cn\javac文件名.java..\java3章程序运行过,要用到java.util包中的Calendar类。对象对应Throwable类以及该类的子类。Throwable类包含有:java.lang.Errorjava.lang.ExceptionJava程序通常不会捕获这类异常事件,也不会抛出这个异常;另一种异常是try-catch-finally语句来实现的,该catch(ExceptiongType1exceptionObject){…}catch(ExceptiongType2exceptionObject){…}会生成异常对象并抛弃异常对象。catchtry代码块中所生成的异常对象,也catch语句可以是多个。catch语句带有一个形式参数,参数ExceptiongType1、ExceptiongType2Throwable类的子类。程序逐渐一般化。例如,IOExceptionFileNotFoundException类的父类,就应该首先捕获FileNotFoundException异常,然后捕获IOException异常。finally语句为异常处理提供一个的出口,不管try代码块中是否发生异常事件,finally块中的语句都会被执行。finally语句不是必需的,也就是说捕获异常时可以没有finally语句。统计单词与单词程序程序结果如图3.2所示。3.2程序运行结实现importjavax.swing.*;importjava.awt.event.*;importimportjavax.swing.*;importjava.awt.event.*;importjava.awt.*;importjava.util.*;importjavax.swing.event.*;importjavax.swing.text. importjava.text.NumberFormat;classEditWindowextendsJFrame{JTextAreaPatternp;Matcherm; //定义一个Treeset3章//定义一个LinkedList//EditWindow类的{//生成一个文本区对象text1=new//生成一个文本区对象text2//设置text1的边 //设置text2的边框 并实例Box类的对象Box 并实例Box类的对象Box//向boxV1对象添加一个名为“输//向boxV1中的text1添加滚动//实例化前面定义的JLabel类的对象showMessage//向boxV2中的text2添加滚动//生成一个列型布局方式的对象Box//向boxH对象中添加//生成一个Container类的对象con//con这个容器设定布局方式为BorderLayoutboxH}//Listener {}//重写接 Listener中的方 {}//重写接 Listener中的方 {}publicvoid{//清空文本区text2//清空List text1String//{String}3章showMessage.setText("短文已经使用了"+(int)number+"个单词intcount[]=newint[tree.size()];inti=0;{Stringitem=iter.next();{}}}}publicclass{publicstaticvoidmain(String{}}程序由两个类构成,一个主类,另一个是EditWindow类,其中EditWindow类需要对于文件进行操作,所以要实现Listener接口。在本程序中为了显示图形界面,所javax.swing包和java.awtjavax.swing.event包。JavaJreaoJva),单击上的【ew】按钮,在出现的框中选择【Fie】选项卡,在该选项卡上选JaaMyavaava保存文件。选择【Build】|【CompileFile】菜单命令进行编译,错误,可按照编译提DOS命令运行:C:\JBuilder9\jdk1.4\bin\javaJDK代码及分析域定义部JTextAreaPatternp;Matcherm; //定义一个Treeset范型//定义一个LinkedListEditWindow(Strings)//生成一个文本区对象text2 3章////设置text2text1区域添加一个监视////生成并实例Box类的Box//生成并实例Box类的Box//向boxV1对象添加一个“输入一篇英文//向boxV1中的text1添加滚//实例化前面定义的JLabel类的对象showMessageshowMessage=newJLabel("短文中使用的单词及频率:");//向boxV2中的text2添加滚//生成一个列型布局方式的对象Box//向boxH对象中添加//生成一个Containe类的对象con//设定con容器的布局方式BorderLayout,同时将boxH放在其中个Box类的对象,然后将text1、text2和一个对象分别添加到boxV1和boxV2中,然后再Box类的对象,并最终将已boxV1boxV2boxH添加 Evente)这个方法是Listener接口中必须实现的方这个方法以text1中产生的动 Evente)方 handle()//清空文本区//清空文本区//清空List对treemylist对象也需要text1的信String//给出{String}这段程序首先判断输入的英文短文是否为空,如果不为空,则将英文单词逐个进行分离。showMessage.setText("短文已经使用了"+(int)number+"个单词intcount[]=new{Stringitem=iter.next();{String3章}}相关String创建String类的理不变字符串。创建String类型字符串的方式如下。(1)和创建需要两步完成 s=newString(“Weare(2)和创建一步完成(3)用一String构造String(StringBufferbuffer为StringBuffer对象,由该对象来构造一个字符串对value为字符数组,offset为子数组的起始索引值,countvalue数组StringStrings1=newString("Iamastudent");s2=newString("Iamastudent");StringStrings3="Iamastudent";s4="Iama定义的是两个字符串变量s3、s4字符串对象和字符串变量的最大区别在于内存的使用。它们对于内存的使用如图3.3IIamaIama3.3String对象的内存使IamaString类常用的方

3.4String变量的内存使publicintlength():获取一个字符串的长度,通过StringStrings=newString("Iamas.length()获得,需要注意的是,通过这个方法统计publicbooleanequals(Strings):比较当前字符串对象的实体是否与参数指定的字符s的实体相同。使用时,要注意需要区分实体部分的大小写,如果要忽略实体部分的大publicbooleans的位置。如果没有检索到字符串s,该方法返回的值是-1。并返回首次出现s的位置。如果没有检索到字符串s,该方法返回的值是-1。3章置。如果没有检索到字符 s,该方法返回的值是-1StringBuffer类封装在Java的java.lang包中,这个类是final类型的,不可以被继承。 类创建的字符串对象是不可以修改的。 类创建的字符串可以进行修改StringBuffer类的构造StringBuffer()StringBuffer对象,分配给该对象的实体的初始容量可以容纳16个字符,当该对象的实体存放的字符序列的长度大于capacity()方法获取当前实体的实际容量。size指定的字符个数,当该对象的实体存放的字符序列的长度大于size时,实体的容量自动地增加,以便存放所增加的字符。StringBuffer(Strings)StringBuffer对象,指定分配给该对象的实体的初始容量为参数字符串s的长度额外再加16个字符。StringBuffer类常用的append方法:将其他Java追加到StringBuffer对象中01,依次类推。n的值必须StringBufferinsert(intindex,Stringstr):这个方法将一个字符串另一个字符串publicStringBufferreverse():StringBuffer对象使用reverse()方法将该对象实体中的 类,该类有两个常用的构造空格符(若干个空格被看做一个空格)、换行符、回车符、Tab符、进纸符。StringTokenizer(StringsStringdelim)sdelim中这些类在java.util.regex包中。complie方法中带的参数,实际上是要进行模式对象p调用matcher(CharSequenceinput)方法返回一个Matcher对象m,称做匹配inputCharSequence接口的类创建的对象。在本章例题然后赋给m。义的数据结构,在Java语言中常用的泛型类有如下几个。LinkedList<E>泛型LinkedList<E>java.util包中。链表是由若干个节点组成的一种数据结构,如果节点含有一个指向下个节点的,这种形式的链表叫做单项链表;如果节点含有两个,一个指向前一节点的,另一个指向下一节点的,称做双向链表。节点的索引从0开始。链表可以动态地完成数据的增加、此时只是创建了一个空的链表,在其使用过,为了管理数据,需要将含有数据的数据是参数obj指定对象的。例如执行:publicbooleanadd(Eelement):向链表末尾添加一个新的节点,该节点中的数据是参数elememt指定的对象。3章publicvoidadd(intindex,Eelement):向链表的指定位置添加一个新的节点,该节点中的数据是参数elememt指定的对象。publicvoidadd (Eelement):向链表的头添加新节点,该节点中的数据是参数elememt指定的对象。publicE ()publicEremoveLast()publicEget(intindex)publicE ()publicEgetLast()HashSet<E>泛型创建得到的newset是一个可以String类型数据的集合,newset可以调用add(Strings)方法将String类型的数据添加到集合中,添加到集合中的数据称做集合的元素。TreeSet<E>类是实现Set接口分方法都是接口方法的TreeSets)方法将Student类型的数据添加到树集中。publicbooleanadd(Eo):向树集添加对象,添加成功返回true,否则返回falsepublicvoidclear():删除树集中的所有对象。publicElast():返回最后一个对象(最大的对象)日历记程序(MyJava),且已编译得到字节码文件(MyJava.class)。程序运行结果如图3.53.5程序运行结实现Evente)方法用于控制单击树组件上的选项时产生的行为,actionPerformed(ActionEvente)importjavax.swing.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;publicclass{publicstaticvoidmain(String{Rememberwin=new}}classRememberextendsJFrameimplements{//生成一个JTree对JTree//生成一个20行、20列的文本区JTextAreatext=newJTextArea("",20,20);inti=0;DefaultMutableTreeNoderoot;//生成JButton对象bottonSave和buttonDel,分别初始化为“保存日志JButtonbuttonSave=newJButton("保存日志"),buttonDel=newJButton("删除日志");3章{DefaultMutableTreeNoderoot=newDefaultMutableTreeNode("日历记事本{Stringtemp=newStringi+"月}{{for(int{DefaultMutableTreeNodesonNode=new}}else{for(int{}}//如果是2月份,添加日期{for(int{}}}//buttonSave按钮添加监视//向buttonDel按钮添加监视器tree=newJTree(root);//定义并实例化一个JPanel类对象JPanelp=new//设置面板的布局方式为BorderLayout方//生成滚动条对象//将滚动条加到BorderLayout布局的中部区//生成一个面板对象pNorthJPanelpNorth=newJPanel();//将按钮添加pNorth面板//将面板pNorth放到BorderLayout布局的北//生成滚动条对象JScrollPanescrollpaneTwo=newJScrollPane(tree);JSplitPanesplitpane=new}{{DefaultMutableTreeNodenode= {for(inti=0;i<=12;i++)3章{{{{String//生成文件对象FileReaderfile=newFileReader(f);BufferedReaderin=newBufferedReader(file);{}}}}}}}{{DefaultMutableTreeNodenode= Stringstr=node.toString();{{Filef=newFile(node.getParent().toString()+str+".txt");FileWritertofile=newFileWriter(f);BufferedWriterout=newBufferedWriter(tofile);}}}elseelse{DefaultMutableTreeNodenode=Stringstr=node.toString();{Filef=new}}}}RememberRemember类需要实包和java.awt包,为了进行事件处理,要引入javax.swing.event包,为了使用树组件,要引入javax.swing.tree,为了进行文件的输入输出操作,要引入java.io包。JavaJreaoJva),单击上的【ew】按钮,在出现的框中选择【Fie】选项卡,在该选项卡上选JaaMyavaava按钮保存文件。选择【Build】|【CompileFile】菜单命令进行编译,错误,可按照编译提示信息进行修改,然后保存并重新编译,直到提示“Processcompleted”,编译成功。C:\JBuilder9\jdk1.4\bin\java本例采用JBuilder自带的JDK,默认安装的路径C:\JBuilder9\jdk1.4,若安装时指定了其他的路径或采用独立的JDK,则要将其修改为相应的路径。代码域定义部////生成一个JTree对JTree//生成一个20行、20列的文本区JTextAreatext=newJTextArea("",20,20);inti=0;DefaultMutableTreeNoderoot;//生成JButton对象bottonSave和buttonDel,分别初始化为“保存日志”和“删除日志JButtonbuttonSave=newJButton("保存日志"),buttonDel=newJButton("删除日志");3章rootDefaultMutableTreeNode类型的数组对象,并定义其长度13JTreetree,由于没有任何子节点,将其值赋为空。在进行记事时需要用到一个文本区域,定义了一个JTextArea类型的对象text。buttonSave和buttonDelDefaultMutableTreeNoderoot=newDefaultMutableTreeNode("日历记事本{Stringtemp=newStringi+"月}这段程序首先将月字符串赋给String类的对象temp,然后再以temp为参数通过DefaultMutableTreeNode(temp)方法实例化对象month[i],最后再将生成的month[i]对象逐个////向buttonSave按钮添加监视//buttonDel按钮添////定义并实例JPanel类对象pJPanelp=newJPanel();//设置面板的布局方式为BorderLayout方//生成滚动条对象////生成一个面板对象pNorthJPanelpNorth=newJPanel();//将按钮添加pNorth面板//将面板pNorth放到BorderLayout布局方式的北pNorthbuttonSavebuttonDel添加到面板对pNorth中,通p.add(pNorth,BorderLayout.NORTH)方法pNorth添加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论