java语言程序设计基础教程上机实验指导手册_第1页
java语言程序设计基础教程上机实验指导手册_第2页
java语言程序设计基础教程上机实验指导手册_第3页
java语言程序设计基础教程上机实验指导手册_第4页
java语言程序设计基础教程上机实验指导手册_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

实验 Java环境演③掌握开发JavaApplet程序的3个步骤:编写源文件、编译源文件和运行Java一个简单的应用程实验要求很高兴学习Java”和“Wearestudents”。程序运行效果示程序模板public {publicstaticvoidmain(Stringargs[{【代码1】 //命令行窗口输出"你好,很高兴学习Java"Aa=newA();a}}{

void{【代码2 //命令行窗口输出"Weare}}实验后的练习一个简单的JavaApplet程实验要求编写一个简单的JavaApplet程序,并在JavaApplet中写两行文字:“这是一个JavaApplet程序”和“我改变了字体”。程序运行效果示程序模板importjava.applet.*;importjava.awt.*;publicclassAppletextends{publicvoidpaint(Graphics{序g.setFont(newFont("宋体}}实验后的练习联合编实验要求文件保存到同一中,例如:C:\100,然后编译o.java。程序运行效果示程序模板模板 publicclass{publicstaticvoidmain(Stringargs[{【代码1】 Aa=newA();Bb=newB();}}2publicclass{void{ //命令行窗口输出"Iam}}3publicclass{void{【代码3 //命令行窗口输出"Iam}}4publicclass{void{【代码4 //命令行窗口输出"Iam}}实验后的练习 用如下命令:c:\1000\javac*.java实验 Java基本数据类型与控制语②掌握使用if…elseif输出希腊字母表实验要求程序运行效果示程序模板publicclass{publicstaticvoidmain(Stringargs[{intstartPosition=0,endPosition=0;charcStart='α',cEnd='ω';【代码1 //cStart做int型转换据运算,并将结果赋值给【代码2】 //cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);for(int{char【代码3】//i做char型转换运算,并将结果赋值给cSystem.out.print(""+c);}}}实验后的练习floatbyteint回文数实验要求程序运行效果示程序模板importjavax.swing.JOptionPane;publicclassNumber{publicstaticvoidmain(String{intStringstr=JOptionPane.showInputDialog("输入一个199999之间的数");if(【代码1】判断number199999之间的条{ //计算number的最(万位 //计算number的千位【代码4】 //计算number的百位d3if(【代码5】)//判断number5位数{if(【代码6】判断number是回文数的条{}{}}elseif(7】)//判断number4位数的条{if(8】判断number是回文数的{}{}}

elseif(【代码9】)//判断number3位数{if(10】number是回文数{}{}}else{System.out.println(number+"2位数");{}{}}else{}{

System.out.println(number+"1位数");}System.out.printf("\n%d不在199999之间}}}实验后的练习猜数字实验要求程序运行效果示程序模板importjavax.swing.JOptionPane;publicclassGuessNumber{publicstaticvoidmain(Stringargs[{System.out.println("1100之间的整数,请猜测这个数");intrealNumber=(int)(Mathrandom()*100)+1;intStringstr=JOptionPane.showInputDialog("输入您的猜测:");)//{if(【代码2】条件代{}elseif(【代码3】条件代{}}}}实验后的练习}}实验 类与对象、继三角形、梯形和圆形的类封实验要求Trangle类具有类型为doble的三个边,以及周长、面积属性,Trnglerangle程序运行效果示程序模板class{doublesideA,sideB,sideC,area,length;booleanboo;publicTrangle(doublea,doubleb,double{【代码1//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】)//a,b,c构成三角形的条件表达式{【代码3//给boo赋值}{【代码4】//给boo赋值}double{【代码5//方法体,要求计算出length}publicdouble{{}{}}

doublep=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));returnarea;return0;publicvoidsetABC(doublea,doubleb,double{【代码6//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码7】)//a,b,c构成三角形的条件表达式{【代码8//给boo赋值}{}}}

【代码9】//给boo赋值class{doubleabove,bottom,height,area;Lader(doublea,doubleb,doubleh){【代码10】//方法体,将参数a,b,c分别赋值给}double{【代码11//方法体,,要求计算出area返}class{doubleradius,area;Circle(doubler){【代码12//方法}double{【代码13//方法体,要求计算出area返}double{【代码14//getArea方法体的代码,要求计算出length返}voidsetRadius(double{}double{return}}publicclass{publicstaticvoidmain(String{doublelength,area;Circlecircle=null;Trangletrangle;Laderlader;【代码15//创建对象【代码16//创建对象trangle【代码17//创建对象【代码18circle调用方法返回周长并赋值给length【代码19circle调用方法返回面积并赋值给area【代码20trangle调用方法返回周长并赋值给length【代码21trangle调用方法返回面积并赋值给area【代码22lader调用方法返回面积并赋值给area【代码23trangle调用方法设置三个边,要求将三个边修改为12,34,1【代码24trangle调用方法返回面积并赋值给area【代码25trangle调用方法返回周长并赋值给length}}实验后的练习实例成员与类成员实验要求程序运行效果示程序模板{ //一个float型实例变量【代码2】 //一个float型类变量b,即static变量bvoidsetA(floata){【代码3 //将参数a的值赋值给成员变量}voidsetB(float{【代码4 //将参数b的值赋值给成员变量}float{return}float{return}void{}staticvoid{}}publicclass{publicstaticvoidmain(String{【代码5 【代码6】 //通过类名调用方法inputB()Acat=newA();Adog=new //cat象调用方法setA(inta)将cat的成员a的值设置为 //cat调用方法setB(intb)将cat的成员b的值设置为 //dog象调用方法setA(inta)将dog的成员a的值设置为 //dog调用方法setB(intb)将dog的成员b的值设置为 //cat调用inputA() //cat调用inputB() //dog调用inputA() //dog调用inputB()}}实验后的练习使用package语句与import语句实验要求程序运行效果示程序模板字节码文件到c:\1000\tom\jiafei packagepublicclass{doublea,b,c;doubleroot1,root2;booleanboo;publicSquareEquation(doublea,doubleb,double{{}{}}publicvoid{{System.out.println("是一元2次方程");doubledisk=b*b-4*a*c;{}{}

}{}}publicvoidsetCoefficient(doublea,doubleb,double{{}{}}}

2Java源程序SunRise.javad:\2000中。在编译模板E:\jdk1.5。setclasspath的值修importtom.jiafei.*;classSunRise{publicstaticvoidmain(Stringargs[{SquareEquationequation=newSquareEquation(4,5,1);}}实验后的练习 的 D:\5000\tom\jiafei\javacD:\5000\javacjava实验 字符串、时间与数字String类的常用方法实验要求程序运行效果示程序模板class publicstaticvoidmain(String Strings1=newString("youareastudent"),s2=newString("howareyou");if(【代码1】)//使用equals方法判断s1与s2{System.out.println("s1与s2相同}{System.out.println("s1与s2不相同}Strings3=new {}Strings4=newString("你"),if(【代码3】)//按着字典序s4s5的表达式{System.out.println("按字典序s4大于}{System.out.println("按字典序s4小于}intStringposition=【代码5】//获取path中最后出现 System.out.println("c:\\java\\jsp\\A.java中最后出现\\的位置:"+position);StringfileName=【代码6】//获取path中“A.java”子字符串。System.out.println("c:\\java\\jsp\\A.java中含有的文件名:"+fileName);Strings6=newString("100"),s7=newintn1=【代码7】 //将s6转化成int型数据。doublen2=【代码8】//将s7转化成double型数据。doublem=n1+n2;Strings8=【代码9//String调用valuOf(intn)方法mStringSystem.out.println("数字"+m+"有"+temp.length()+"位小数Strings9=newString("ABCDEF");chara[]=【代码10 //将s8存放到数组a中{}}}实验后的练习Strings6=newStringstr1=newString(“ABCABC”),PublicstaticStringtoBinaryString(longi)PublicstaticStringtoOctalString(longi)PublicstaticStringtoHexString(longi)PublicstaticStringtoString(longi,intp)其中的toString(longi,intp)返回整数i的p进制表示。请在适当位置添比较日期的大小实验要求程序运行效果示程序模板importimportjavax.swing.JOptionPane;publicclassDateExample{publicstaticvoidmain(Stringargs[{Stringstr=JOptionPane.showInputDialog("输入第一个日期的年份:");intyearOne=Integer.parseInt(str);intmonthOne=Integer.parseInt(str);intdayOne=Integer.parseInt(str);intyearTwo=Integer.parseInt(str);intmonthTwo=Integer.parseInt(str);intdayTwo=Integer.parseInt(str);Calendarcalendar=【代码1】//【代码2 //将calendar的时间设置为yearOne年monthOnedayOnelongtimeOne=【代码3 【代码4 //将calendar的时间设置为yearTwo年monthTwo Datedate1=【代码6】 //用timeOne做参数构造date1Datedate2=【代码7】 //用timeTwo做参数构造date2{}else{}else{}}}

longdays=【代码8】//计算两个日期相隔天数+yearTwo+"年"+monthTwo+"月"+dayTwo+"相隔"+days+"实验后的练习处理大整实验要求程序运行效果示程序模板importjava.math.*;classBigIntegerExample{publicstaticvoidmain(String BigIntegern1=new n2=newBigInteger(" result=【代码1】//n1n2result=【代码2】//n1n2result=【代码3】//n1n2result=【代码4】//n1n2BigIntegerm=newBigInteger("1968957"),COUNT=newBigInteger("0"),ONE=newBigInteger("1"),TWO=newBigInteger("2"); {{System.out.print("}}}}实验后的练习实验 组件与事件处算术测试实验要求编写一个算书测试小,用来训练小学生的算术能力。程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确;程序运行效果示程序模板publicclass{intnumberOne,numberTwo;Stringoperator="";booleanright;publicintgiveNumberOne(int{numberOne=(int)(Math.random()*n)+1;returnnumberOne;}publicintgiveNumberTwo(int{numberTwo=(int)(Math.random()*n)+1;returnnumberTwo;}publicString{doubled=Math.random();return}publicbooleangetRight(int{{}elseif(operator.equals("-{if(answer==numberOne-numberTwo)}return}}importjava.awt.*;importjava.awt.event.*;publicclassComputerFrameextendsFrameimplements{TextFieldtextOne,textTwo,textResult;ButtongetProblem,giveAnwser;LabeloperatorLabel,message;Teacherteacher;ComputerFrame(Strings){teacher=newTeacher();setLayout(newFlowLayout());textOne=【代码1】 //创建textOne,其可见字符长是10textTwo=【代码2】 //创建textTwo,其可见字符长是10textResult=【代码3】//创建textResult,其可见字符长是10operatorLabel=newLabel("+");message=newLabel("你还没有回答呢");getProblem=newButton("获取题目");giveAnwser=newButton("确认答案");add(newLabel("="));【代码4】//将当前窗口为getProblem的ActionEvent事件监视【代码5】//将当前窗口为giveAnwser的ActionEvent事件监视【代码6】//将当前窗口为textResult的ActionEvent事件监视addWindowListener(new{publicvoidwindowClosing(WindowEvent{}}}publicvoidactionPerformed(ActionEventif(【代码7】//{intnumber1=teacher.giveNumberOne(100);intnumber2=teacher.giveNumberTwo(100);Stringoperator=teacher.givetOperator();}if(【代码8】//判断事件源是否是{Stringanswer=textResult.getText();intresult=Integer.parseInt(answer);{message.setText}message.setText("你回答错误}}catch(NumberFormatException{message.setText("请输入数字字符}}}}publicclass{publicstaticvoidmain(String{ComputerFrame}}实验后的练习1.信号灯实验要求程序运行效果示程序模板importpublicclassSignalCanvasextends{intred,green,yellow,x,y,r;{}publicvoidsetRed(int }publicvoidsetGreen(int }publicvoidsetYellow(int }publicvoidsetPosition(intx,int{this.x=x;}publicvoidsetRadius(int{}publicvoidpaint(Graphics{{}else{}else{}}}importjava.awt.*;importjava.applet.*;importjava.awt.event.*;publicclassSignalFrameextendsFrameimplements{Choicechoice;SignalCanvassignal=null;StringitemRed="红灯",itemYellow="黄灯",itemGreen="绿灯";publicSignalFrame(){choice=【代码1 //创建【代码2 //创建choice添加【代码3 //创建choice添加【代码4 //创建choice添加【代码5】//将当前窗口为choice的ItemEvent事件监视try{Classcs=Class.forName("SignalCanvas");}catch(Exception Label("您还没有编 addWindowListener(new{publicvoidwindowClosing(WindowEvent{}}}publicvoiditemStateChanged(ItemEvent{Stringitem=【代码6】//choiceintw=signal.getBounds().width;inth=signal.getBounds().height;intm=Math.min(w,h);{{signal.setRed(1);}}else{{signal.setRed(0);}}else{{signal.setRed(0);}}}}publicclass{publicstaticvoidmain(String{SignalFrameframe;frame=newSignalFrame()}}实验后的练习布局与日实验要求pCenterpCenterpCenter中放置49个,用来显示日历。窗口的北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth,单击显示当前月的上一月的日历。窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个用来显示一些信息。程序运行效果示程序模板importjava.util.Calendar;publicclassCalendarBean{Stringintyear=2005,month=0;publicvoidsetYear(intyear) }publicint return}publicvoidsetMonth(int this}publicint return}publicString[] Stringa[]=newCalendar日历=Calendar.getInstance();intday=0;{}{}{ } }}{a[i]=String.valueOf(n);}return}}importjava.util.*;importjava.awt.*;importjava.awt.event.*;importjava.applet.*;publicclassCalendarFrameextendsFrameimplements LabellabelDay[]=newLabel[42];ButtontitleName[]=newButton[7];","ButtonnextMonth,previousMonth;intyear=2006,month=10;CalendarBeancalendar;LabelshowMessage=newLabel("",Label.CENTER);publicCalendarFrame(){Panel 【代码1//将pCenter的布局设置为77列的GridLayoutfor(int{titleName[i]=new【代码2】//pCenter添加组件titleName[i]}for(int{【代码3】//pCenter添加组件labelDay[i]}calendar=newCalendarBean();月}

for(inti=0;i<42;i++){}nextMonth=newButton("下月");previousMonth=newButton("上月");PanelpNorth=ne "+ScrollPanescrollPane=newScrollPane();【代码4】//窗口添加scrollPane【代码5】//窗口添加pNorth【代码6】//窗口添加pSouth在南publicvoidactionPerformed(ActionEvent{{month=month+1;for(inti=0;i<42;i++){}}else{month=month-1;Stringday[]=calendar.getCalendar();for(inti=0;i<42;i++){}月

showMessage.setText("日历:"+calendar.getYear()+"年}}publicclass{publicstaticvoidmain(String CalendarFrameframe=newCalendarFrame(); {}}}}实验后的练习1.CalendarFrame类中增加一个TextField实验 多线汉字打字练习实验要求编写一个Java应用程序,在主线再创建一个Frame类型的窗口,在该窗口程序运行效果示程序模板importpublicclassWordThreadextends charword;intk=19968;Labelcom;WordThread(Label }publicvoid{{try{【代码1】//调用sleep方法使得线断6000豪}catch(InterruptedExceptione){}if(k>=29968)}}}importjava.awt.*;importjava.awt.event.*;publicclassThreadFrameextendsFrameimplements{LabelButtonTextField【代码2】//用WordThread一个giveWord对intscore=0;{wordLabel=newLabel("",Label.CENTER);wordLabel.setFont(newFont("",Font.BOLD,72));button=newButton("开始");inputText=newTextField(3);scoreText=newTextField(5);【代码3】//创建giveWord,将wordLabelWordThread参PanelsouthP=nenel();southP.add(newLabel("输入所显示的汉字后回车:"));addWindowListener(new{publicvoidwindowClosing(WindowEvent{}}}publicvoidactionPerformed(ActionEvent{{if(!(【代码4】 //giveWord调用方法 giveWord=new} }catch(Exception}else{{}}}}publicclass{publicstaticvoidmain(String{new}实验后的练习更改为线断time毫秒。在WordThread类增加publicvoidsetTime(intn)旋转的行实验要求程序运行效果示程序模板importpublicclassMycanvasextends{intColorpublicvoidsetColor(Color{}publicvoidsetR(int{}publicvoidpaint(Graphics{g.setColor(c);}publicint{return}}importpublicclassPlanetextendsPanelimplements{【代码1 //用Thread类一个moon对MycanvasdoublepointX[]=newpointY[]=newdouble[360左上角端点坐标的数组intw=100,h=100;intradius=30;{setSize(w,h);yellowBall=newMycanvas();double for(int {pointX[i+1]=pointX[i]*Math.cos(angle)-Math.sin(angle)*pointY[i];}for(int{pointX[i]=pointX[i]+w/2; }【代码2】moon对}publicvoid{try{moon}catch(Exception}publicvoidpaint(Graphics{g.setColor(Color.blue);}publicvoid{inti=0;{try{【代码3】//Thread类调用类方法sleep使得线断10豪秒}catch(InterruptedException}}}importjava.awt.*;importjava.awt.event.*;publicclassHaveThreadFrameextendsFrameimplements{【代码4 //用Thread类一个rotate对PlanetdoublepointX[]=newdouble[360],pointY[]=newintwidth,height;intradius=120;{rotate=newThread(this);earth=newPlanet();doubleangle=1*Math.PI/180;for(inti=0;i<359;i++){pointX[i+1]=pointX[i]*Math.cos(angle)-Math.sin(angle)*pointY[i];}for(int{pointX[i]=pointX[i]+width/2;}addWindowListener(new{publicvoidwindowClosing(WindowEvent{}}【代码5 }publicvoid{inti=0;{try{Thread.sleep(100);}catch(InterruptedException}}publicvoidpaint(Graphics{g.setColor(Color.red);}}publicclass{publicstaticvoidmain(String{new}}实验后的练习在Salite,线程Salite占有CPU资源期间可以让greenBall画布旋转双线程接实验要求编写一个应用程序,除了主线程外,还有两个线程:和second。程序运行效果示程序模板importjava.awt.*;importjava.awt.event.*;publicclassMoveButtonextendsFrameimplements{【代码1】//用Thread类,second两个线程对ButtonredButton,greenButton,startButton;intdistance=10;{【代码2】//创建线程,当前窗口做为该线程的目标对【代码3】//创建线程,当前窗口做为该线程的目标对redButton=newButton();greenButton=newButton();startButton=newButton("start");addWindowListener(new{publicvoidwindowClosing(WindowEvent{}}}publicvoidactionPerformed(ActionEvent{try{.start();}catch(Exception}publicvoid{{if(【代码4】CPU否是 try{}catch(Exception}if(【代码5】CPU否是 try{Thread.sleep(10);}catch(Exception}}}publicsynchronized ponent(Component{if(Thread.currentThread()== try{wait();}catch(Exceptionexp){}{b.setLocation(10,60);}} try{wait();}catch(Exceptionexp){}{distance=10;}}}}publicclass{publicstaticvoidmain(String{new}实验后的练习实验 输入输出学读汉字实验要求那么在当前应用程序的运行中需要有“你.wav”格式文件。程序运行效果示程序模板importimportjava.util.StringTokenizer;publicclassChineseCharacters{publicStringBuffergetChinesecharacters(File{StringBufferhanzi=newtry{FileReaderinOne=【代码1】//创建指向文件finOne的对象BufferedReaderinTwo=【代码2】//创建指向文inOneinTwoStrings=null;int //inTwo一 StringTokenizertokenizer=newStringTokenizer(s,",'\n'");{}}}catch(Exceptione)return}}importjava.awt.*;importjava.awt.event.*;importjava.io.*;import {ChineseCharacterschinese;Choicechoice;ButtongetCharacters,voiceCharacters;LabelshowCharacters;StringBuffertrainedChinese=null;Clipclip=null;ThreadvoiceThread;intk=0;PanelpCenter;CardLayoutmycard;TextAreatextHelp; ;Itemhelp;publicStudyFrame(){chinese=newChineseCharacters();choice=newChoice();showCharacters=newLabel("",Label.CENTER);showCharacters.setFont(newFont("宋体",Font.BOLD,72));getCharacters=newButton("下一个汉字");voiceCharacters=newButton("发音");voiceThread=newThread(this);PanelpNorth=nenel();pNorth.add(newLabel("选择一个汉字字符组成的文件"));PanelpSouth=nenel();mycard=newCardLayout();textHelp=newTextArea();bar=new=new("帮助help=newItem("关于学汉字"); addWindowListener(new{publicvoidwindowClosing(WindowEvent{}}publicvoiditemStateChanged(ItemEvent{StringfileName=choice.getSelectedItem();Filefile=newFile(fileName);mycard.show(pCenter,"hanzi")}publicvoidactionPerformed(ActionEvent{{{charc=trainedChinese.charAt(k);}showCharacters.setText("请选择一个汉字字符文件}}{{voiceThread=new}try{}catch(Exception

{mycard.show(pCenter,"help")try{FilehelpFile=newFileReaderinOne=【代码4】//创建指向文件helpFileinOneStrings=null;{}}catch(IOException}}publicvoid{voiceCharacters.setEnabled(false);try{if(clip!=null){} }catch(Exceptionexp){}}}publicclass{publicstaticvoidmain(String{new}}实验后的练习previousButton统计英文单词实验要求程序运行效果示程序模板importjava.io.*;importjava.util.Vector;publicclass{VectorallWorsd,noSameWord;{allWorsd=newVector();noSameWord=newVector();}publicvoidwordStatistic(File{try{RandomAccessFileinOne=【代码1 inOne对inTwo

RandomAccessFileinTwo=【代码2 longwordStarPostion=0,wordEndPostion=0;longlength=inOne.length();intflag=1;intc=-1;for(int c=【代码3】 //inOne调用read()方法booleanboo=(c<='Z'&&c>='A')||(c<='z'&&c>='a');{{wordStarPostion=inOne.getFilePointer()-}}{{

【代码4】//inTwo调用seek方法将读写位置移动 【代码5】//inTwo用readFully(byteaa

Stringword=newString(cc);}}}}catch(Exception}publicVector{return}publicVector{return}}importjava.awt.*;importjava.awt.event.*;importjava.util.Vector;importjava.io.File;publicclassStatisticFrameextendsFrameimplements{WordStatisticTextAreashowMessage;ButtonopenFile;FileDialogopenFileDialog;VectorallWord,noSameWord;publicStatisticFrame(){statistic=newWordStatistic();showMessage=newTextArea();openFile=newButton("OpenFile");openFileDialog=newFileDialog(this,"打开文件话框",FileDialog.LOAD);allWord=newVector();noSameWord=newVector();addWindowListener(new{publicvoidwindowClosing(WindowEvent{}}publicvoidactionPerformed(ActionEvent{noSameWord.clear();StringfileName=openFileDialog.getFile(); statistic.wordStatistic(newFile(fileName));单词

showMessage.append("\n其中有"+noSameWord.size()+"个互不相同showMessage.append("\n用频率排列:\n");intcount[]=newint[noSameWord.size()];for(inti=0;i<noSameWord.size();i++){Strings1=(String)noSameWord.elementAt(i);for(intj=0;j<allWord.size();j++) Strings2=(String)allWord.elementAt(j);}}for(int{for(int{{Stringintt=count[m];}}}for(int{}}}}publicclass{publicstaticvoidmain(String{new}}实验后的练习在Zip文件实验要求 程序运行效果示程序模板importimportjava.util.zip.*;publicclass publicstaticvoidmain(String{Filef=newFile("book.zip");Filedir=newFile("Book");byteb[]=newbyte[100];{ZipInputStreamin=newZipInputStream(newFileInputStream(f));ZipEntryzipEntry=null; Filefile=newFile(dir,zipEntry.getName());FileOutputStreamout=newFileOutputStream(file);intn=-1;{Stringstr=newString(b,0,n);}}}catch(IOException{}}}实验后的练习 实验 网络编服务器端文件实验要求创建一个URL对象,然后让URL对象返回输入流,通过该输入流URL所包含程序运行效果示程序模板importjava.awt.*;importjava.awt.event.*;import.*;importjava.io.*;publicclass{publicstaticvoidmain(String{new}}classNetWinextendsFrameimplements{ButtonURLTextFieldTextAreabyteb[]=newbyte[118];Threadthread;{text=newTextField(20);area=newTextArea(12,12);button=newButton("确定");thread=newThread(this);Panelp=nep.add(newLabel("输入:"));addWindowListener(new publicvoidwindowClosing(WindowEvent{}}publicvoidactionPerformed(ActionEvent{thread=newThread(this);}catch(Exception{text.setText("我正在}}publicvoid try intn=-String【代码1】//使用字符串name创建urlStringhostName=【代码2】//urlgetHost()inturlPortNumber=【代码3urlgetPort()StringfileName=【代码4】//urlgetFile()InputStreamin=【代码5url调用方法返回一个输入area.append("\n机:"+hostName+"端口:"+urlPortNumber+area.append("\n Strings=newString(b,0,n);}}catalformedURLException }catch(IOException }}实验后的练习1.publicintgetDefaultPort()、publicStringgetRef()、public使用套接字服务器端对象实验要求程序运行效果示程序模板import.*;importjava.io.*;importjava.awt.*;importjava.awt.event.*;classClientextendsFrameimplements{Buttonconnection;Socketsocket=null;ObjectInputStreamin=null;ObjectOutputStreamout=null;Threadthread;public{socket=newconnection=newButton("连接服务器,文本区对象");thread=newThread(this);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvent{}}}publicvoid{ try{TextAreatext=(TextArea)in.readObject();}catch(Exception{}}}publicvoidactionPerformed(ActionEvent{{{{}{InetAddressaddress=InetAddress.getByName("");流

【代码2】//socketsocketAddress连innewObjectInputStream(【代码3】//socket入outnewObjectOutputStream4】//socket}}catch(Exception}}publicstaticvoidmain(String Clientwin=new}}importjava.io.*;import.*;importjava.util.*;importjava.awt.*;publicclass{publicstaticvoidmain(String{ServerSocketServerThreadthread;Socketyou=null;{try{server=【代码1】//创建在端口4331上负责的对}catch(IOException{System.out.println("正在}try{you=【代码2server端相连接的Socket}catch(IOException{System.out.println("正在等待客户}{new}else{}}}}classServerThreadextends{Socketsocket;ObjectInputStre

温馨提示

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

评论

0/150

提交评论