2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  系 專業(yè) 級</p><p><b>  課程設(shè)計(jì)(論文)</b></p><p>  題 目: Java 五子棋游戲設(shè)計(jì) </p><p>  姓名 學(xué)號 </p><p>  指導(dǎo)教師(

2、簽名) </p><p>  二○一零 年 七 月 十二 日</p><p>  Java 五子棋游戲設(shè)計(jì)</p><p><b>  ——xxx</b></p><p><b>  摘要</b></p><p>  五子棋游戲大家都比較熟悉,且老少

3、皆宜,我個(gè)人也很喜歡五子棋游戲,易學(xué)易操作,使用Java編寫一個(gè)五子棋游戲,閑暇之時(shí)既可以開動(dòng)智力又可以得到愉悅。程序?qū)崿F(xiàn)選擇對弈桌及角色(執(zhí)黑、執(zhí)白、觀看)。在游戲界面,有開始,退出(游戲未結(jié)束、點(diǎn)退出自動(dòng)判負(fù));發(fā)言及顯示區(qū);用戶列表區(qū);棋盤繪制區(qū)。</p><p><b>  前言</b></p><p>  Java是由美國的sun microsystems

4、公司發(fā)展出來的一套面向?qū)ο蟪绦蛘Z言,因?yàn)樗拿嫦驅(qū)ο?,分散運(yùn)算,跨平臺等等特性,又支持多線程。使得許多用過的人都愛不釋手。</p><p>  Java既是一種程序設(shè)計(jì)語言,也是一個(gè)完整的平臺。作為一種程序語言,它簡潔、面向?qū)ο?、安全、健壯,以及適用于Internet技術(shù);而作為一個(gè)平臺(JRE,JavaRuntime Environment,Java運(yùn)行環(huán)境或者說是Java虛擬機(jī)),對于符合Sun公司Java標(biāo)

5、準(zhǔn)的應(yīng)用程序,都可以在Java平臺上正確運(yùn)行,與程序運(yùn)行的操作系統(tǒng)無關(guān)。</p><p>  Java發(fā)展到今天,已從編程語言發(fā)展成為全球第一大通用開發(fā)平臺。Java技術(shù)已被計(jì)算機(jī)行業(yè)主要公司所采納。1999年,Sun公司推出了以Java2平臺為核心的J2EE、J2SE和J2ME三大平臺。隨著三大平臺的迅速推進(jìn),全球形成了一股巨大的Java應(yīng)用浪潮。</p><p>  這個(gè)五子棋游戲正是

6、用這個(gè)平臺做的,在實(shí)踐中充分體現(xiàn)出了Java面向?qū)ο蠼o我們帶來的方便。多用戶聊天程序也讓我體會到了Java多線程的強(qiáng)大功能。</p><p><b>  一 設(shè)計(jì)思路、</b></p><p><b> ?。ㄒ唬?、工作原理圖</b></p><p><b> ?。ǘ?、功能的規(guī)劃</b></p&

7、gt;<p>  1.建立一個(gè)棋盤類,繪制棋盤的樣式,在棋盤面板上添加各種按鈕及相應(yīng)胡觸發(fā)事件。同時(shí)注意面板的設(shè)計(jì),使面板設(shè)計(jì)的盡量胡的合理美觀。</p><p><b>  a.棋盤的繪制</b></p><p>  public void draw_qipan(Graphics G) //畫棋盤 15*15{</p><p>

8、;  G.setColor(Color.lightGray);</p><p>  G.fill3DRect(10,10,300,300,true);</p><p>  G.setColor(Color.black);</p><p>  for(int i=1;i<16;i++){</p><p>  G.drawLine(20,2

9、0*i,300,20*i);</p><p>  G.drawLine(20*i,20,20*i,300);}} </p><p>  b.添加按鈕與按鈕胡規(guī)劃</p><p>  Button b1=new Button("開始");</p><p>  Button b2=new Button

10、("重置游戲");</p><p>  Label lblWin=new Label(" ");</p><p>  Checkbox ckbHB[]=new Checkbox[3];</p><p>  Button exist = new Button("退出"); </p><p&

11、gt;  public void init(){</p><p>  ckbHB[0]=new Checkbox("執(zhí)白",ckgHB,false);</p><p>  ckbHB[1]=new Checkbox("執(zhí)黑",ckgHB,false);</p><p>  ckbHB[2]=new Checkbox("

12、;觀看",ckgHB, false);</p><p><b>  }</b></p><p>  C.鼠標(biāo)棋子胡相應(yīng)觸發(fā)事件</p><p>  public void mouseClicked(MouseEvent e) {</p><p>  Graphics g=getGraphics();</p

13、><p>  int x1,y1;</p><p>  x1=e.getX();</p><p>  y1=e.getY();</p><p>  if (e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300) {</p><p>&l

14、t;b>  return;}</b></p><p>  if (x1%20>10) {</p><p><b>  x1+=10;}</b></p><p>  if(y1%20>10) {</p><p><b>  y1+=10;}</b></p>

15、<p>  x1=x1/20*20;</p><p>  y1=y1/20*20;</p><p>  set_Qizi(x1,y1);</p><p>  m*=(-1); }</p><p><b>  d.按鈕的觸發(fā)事件</b></p><p>  public void acti

16、onPerformed(ActionEvent e) {</p><p>  Graphics g=getGraphics();</p><p>  if (e.getSource()==b1) {</p><p>  Game_start();}</p><p><b>  else{</b></p>&

17、lt;p>  Game_re();}</p><p>  if(e.getSource()==exist){</p><p>  Game_re();</p><p>  lblWin.setText(Get_qizi_color(color_Qizi)+"輸了!");</p><p>  intGame_Start

18、=0;} </p><p>  2.編寫一個(gè)功能判斷落子的位置及畫出相應(yīng)的黑白棋子</p><p>  public void set_Qizi(int x,int y) //落子{</p><p>  if (intGame_Start==0) //判斷游戲未開始{</p><p><b>  return;}</b>

19、;</p><p>  if (intGame_Body[x/20][y/20]!=0) {</p><p><b>  return;}</b></p><p>  Graphics g=getGraphics();</p><p>  if (color_Qizi==1)//判斷黑子還是白子{</p>

20、<p>  g.setColor(Color.black);</p><p>  color_Qizi=0;}</p><p><b>  else{</b></p><p>  g.setColor(Color.white);</p><p>  color_Qizi=1;}</p><

21、p>  g.fillOval(x-10,y-10,20,20);</p><p>  intGame_Body[x/20][y/20]=color_Qizi+1;}</p><p><b>  3.判斷勝負(fù)</b></p><p>  if (Game_win_1(x/20,y/20)) //判斷輸贏1{</p><p

22、>  lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");</p><p>  intGame_Start=0;}</p><p>  if (Game_win_2(x/20,y/20)) //判斷輸贏2{</p><p>  lblWin.setText(Get_qizi_color(col

23、or_Qizi)+"贏了!");</p><p>  intGame_Start=0;}</p><p>  if (Game_win_3(x/20,y/20)) //判斷輸贏3{</p><p>  lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");</p>&

24、lt;p>  intGame_Start=0;}</p><p>  if (Game_win_4(x/20,y/20)) //判斷輸贏4{</p><p>  lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");</p><p>  intGame_Start=0;</p>&

25、lt;p><b>  } }</b></p><p>  4.添加用戶聊天功能</p><p>  NetchatClient chat=new NetchatClient();</p><p>  chat.frame();</p><p>  chat.setVisible(true);</p>

26、<p><b>  二、具體實(shí)現(xiàn)</b></p><p><b> ?。ㄒ唬?、創(chuàng)建棋盤類</b></p><p>  Public class WcyChess extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener

27、{</p><p>  int color_Qizi=0;//旗子的顏色標(biāo)識 0:白子 1:黑子</p><p>  int intGame_Start=0;//游戲開始標(biāo)志 0未開始 1游戲中</p><p>  int intGame_Body[][]=new int[16][16]; //設(shè)置棋盤棋子狀態(tài)</p><p><b&g

28、t;  int m=-1;</b></p><p>  Button b1=new Button("開始");</p><p>  Button b2=new Button("重置游戲");</p><p>  Label lblWin=new Label(" ");</p>&l

29、t;p>  Checkbox ckbHB[]=new Checkbox[3];</p><p>  Button exist = new Button("退出"); </p><p>  CheckboxGroup ckgHB=new CheckboxGroup();</p><p>  NetchatClient chat=new Net

30、chatClient();</p><p>  public void init(){</p><p>  setLayout(null);</p><p>  addMouseListener(this);</p><p><b>  add(b1);</b></p><p>  b1.setB

31、ounds(330,50,80,30);</p><p>  b1.addActionListener(this);</p><p><b>  add(b2);</b></p><p>  b2.setBounds(330,90,80,30);</p><p>  b2.addActionListener(this);

32、</p><p>  ckbHB[0]=new Checkbox("執(zhí)白",ckgHB,false);</p><p>  ckbHB[0].setBounds(320,20,60,30);</p><p>  ckbHB[1]=new Checkbox("執(zhí)黑",ckgHB,false);</p><p&

33、gt;  ckbHB[1].setBounds(380,20,60,30);</p><p>  ckbHB[2]=new Checkbox("觀看",ckgHB, false);</p><p>  add(ckbHB[0]);</p><p>  add(ckbHB[1]);</p><p>  add(ckbHB[2

34、]);</p><p>  ckbHB[0].addItemListener(this);</p><p>  ckbHB[1].addItemListener(this);</p><p>  add(lblWin);</p><p>  lblWin.setBounds(330,180,80,30);</p><p&g

35、t;  lblWin.setBackground(Color.red);</p><p>  lblWin.setText("勝利者!");//沒有顯示?</p><p>  ckbHB[2].setBounds(440, 20,60, 30);</p><p>  add(exist);</p><p>  exist.

36、setBounds(330,130,80,30);</p><p>  exist.addActionListener(this);</p><p>  //add(chat);chat.setBounds(20, 500, 300, 300);</p><p>  chat.frame();</p><p>  chat.setVisi

37、ble(true);</p><p>  Game_start_csh();</p><p>  setSize(500,600); </p><p>  setVisible(true);}</p><p>  public void itemStateChanged(ItemEvent e) {</p><p> 

38、 if (ckbHB[0].getState()) //選擇黑子還是白子{</p><p>  color_Qizi=0;}</p><p><b>  else{</b></p><p>  color_Qizi=1;}}</p><p>  public void mousePressed(MouseEvent e

39、){}</p><p>  public void mouseClicked(MouseEvent e) {</p><p>  Graphics g=getGraphics();</p><p>  int x1,y1;</p><p>  x1=e.getX();</p><p>  y1=e.getY();<

40、;/p><p>  if (e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300) {</p><p><b>  return;}</b></p><p>  if (x1%20>10) {</p><p><b>  

41、x1+=10;}</b></p><p>  if(y1%20>10) {</p><p><b>  y1+=10;}</b></p><p>  x1=x1/20*20;</p><p>  y1=y1/20*20;</p><p>  set_Qizi(x1,y1);<

42、;/p><p><b>  m*=(-1);}</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p>  Graphics g=getGraphics();</p><p>  if (e.getSource()==b1) {</p>

43、<p>  Game_start();}</p><p><b>  else{</b></p><p>  Game_re();}</p><p>  if(e.getSource()==exist){</p><p>  Game_re();</p><p>  lblWin

44、.setText(Get_qizi_color(color_Qizi)+"輸了!");</p><p>  intGame_Start=0;}}</p><p>  public void mouseEntered(MouseEvent e){}</p><p>  public void mouseExited(MouseEvent e){}&

45、lt;/p><p>  public void mouseReleased(MouseEvent e){}</p><p>  public void mouseDragged(MouseEvent e){}</p><p>  public void mouseMoved(MouseEvent e){}</p><p>  public voi

46、d paint(Graphics g) {</p><p>  draw_qipan(g);}</p><p>  (二)、判斷輸贏功能實(shí)現(xiàn)</p><p>  if (Game_win_1(x/20,y/20)){ //判斷輸贏1</p><p>  lblWin.setText(Get_qizi_color(color_Qizi)+&qu

47、ot;贏了!");</p><p>  intGame_Start=0;}</p><p>  if (Game_win_2(x/20,y/20)){ //判斷輸贏2</p><p>  lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");</p><p>  i

48、ntGame_Start=0;}</p><p>  if (Game_win_3(x/20,y/20)) //判斷輸贏3{</p><p>  lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");</p><p>  intGame_Start=0;}</p><p> 

49、 if (Game_win_4(x/20,y/20)) //判斷輸贏4{</p><p>  lblWin.setText(Get_qizi_color(color_Qizi)+"贏了!");</p><p>  intGame_Start=0;}</p><p>  //判斷輸贏程序?qū)崿F(xiàn)在詳細(xì)過程</p><p>  p

50、ublic boolean Game_win_1(int x,int y){ //橫向判斷輸贏</p><p>  int x1,y1,t=1;</p><p><b>  x1=x;</b></p><p><b>  y1=y;</b></p><p>  for (int i=1;i<5

51、 ;i++ ) {</p><p>  if (x1>15) {</p><p><b>  break;}</b></p><p>  if (intGame_Body[x1+i][y1]==intGame_Body[x][y]) {</p><p><b>  t+=1;}</b>&l

52、t;/p><p><b>  else{</b></p><p><b>  break;}}</b></p><p>  for (int i=1;i<5 ;i++ ){</p><p><b>  if (x1<1)</b></p><p>

53、<b>  break;}</b></p><p>  if(intGame_Body[x1-i][y1]==intGame_Body[x][y])</p><p><b>  t+=1;}</b></p><p><b>  else{</b></p><p><b&g

54、t;  break;}}</b></p><p><b>  if (t>4){</b></p><p>  return true;}</p><p><b>  else{</b></p><p>  return false;}}</p><p>

55、  public boolean Game_win_2(int x,int y) { //縱向判斷輸贏</p><p>  int x1,y1,t=1;</p><p><b>  x1=x;</b></p><p><b>  y1=y;</b></p><p>  for (int i=1;i&

56、lt;5 ;i++ ){</p><p>  if (x1>15){</p><p><b>  break;}</b></p><p>  if (intGame_Body[x1][y1+i]==intGame_Body[x][y]){</p><p><b>  t+=1;}</b><

57、;/p><p><b>  else{</b></p><p><b>  break;}}</b></p><p>  for (int i=1;i<5 ;i++ ){</p><p>  if (x1<1){</p><p><b>  break;

58、}</b></p><p>  if(intGame_Body[x1][y1-i]==intGame_Body[x][y]){</p><p><b>  t+=1;}</b></p><p><b>  else{</b></p><p><b>  break; }}<

59、;/b></p><p><b>  if (t>4){</b></p><p>  return true;}</p><p><b>  else{</b></p><p>  return false;}}</p><p>  public boolea

60、n Game_win_3(int x,int y) //左斜判斷輸贏{</p><p>  int x1,y1,t=1;</p><p><b>  x1=x;</b></p><p><b>  y1=y;</b></p><p>  for (int i=1;i<5 ;i++ ){<

61、/p><p>  if (x1>15){</p><p><b>  break;}</b></p><p>  if (intGame_Body[x1+i][y1-i]==intGame_Body[x][y]){</p><p><b>  t+=1;}</b></p><

62、p><b>  else{</b></p><p><b>  break;}}</b></p><p>  for (int i=1;i<5 ;i++ ){</p><p>  if (x1<1){</p><p><b>  break;}</b>&l

63、t;/p><p>  if(intGame_Body[x1-i][y1+i]==intGame_Body[x][y]){</p><p><b>  t+=1;}</b></p><p><b>  else{</b></p><p><b>  break;}}</b><

64、;/p><p><b>  if (t>4){</b></p><p>  return true;}</p><p><b>  else{</b></p><p>  return false;}}</p><p>  public boolean Game_win_

65、4(int x,int y) { //左斜判斷輸贏 </p><p>  int x1,y1,t=1;</p><p><b>  x1=x;</b></p><p><b>  y1=y;</b></p><p>  for (int i=1;i<5 ;i++ ) {</p>

66、<p>  if (x1>15){</p><p><b>  break;}</b></p><p>  if (intGame_Body[x1+i][y1+i]==intGame_Body[x][y]){</p><p><b>  t+=1;}</b></p><p>&l

67、t;b>  else{</b></p><p>  break;}}</p><p>  for (int i=1;i<5 ;i++ ) {</p><p>  if (x1<1) {</p><p><b>  break;}</b></p><p>  if

68、(intGame_Body[x1-i][y1-i]==intGame_Body[x][y]) {</p><p><b>  t+=1;}</b></p><p><b>  else{</b></p><p>  break;}}</p><p>  if (t>4) {</p&

69、gt;<p>  return true;}</p><p><b>  else{</b></p><p>  return false;}} </p><p>  (三)、實(shí)現(xiàn)聊天功能類</p><p>  package NetchatClient;</p><p>  i

70、mport Java.awt.*;</p><p>  import Java.awt.event.*;</p><p>  import Java.net.*;</p><p>  import Java.io.*;</p><p>  import Javax.swing.*;</p><p>  public c

71、lass NetchatClient extends Frame {</p><p>  Frame x=new Frame("liaotianchengxu");</p><p>  TextField tf=new TextField();</p><p>  TextArea ta=new TextArea();</p>&l

72、t;p>  Socket s=null;</p><p>  DataOutputStream dos=null;</p><p>  public static void main(String[] args) {</p><p>  new NetchatClient().frame(); }</p><p>  public vo

73、id frame(){</p><p>  System.out.println("frame()");</p><p>  setLocation(20, 400);</p><p>  setSize(300,300);</p><p>  add(tf,BorderLayout.SOUTH);</p>

74、<p>  add(ta,BorderLayout.NORTH);</p><p><b>  pack();</b></p><p>  setVisible(true);</p><p>  connect();</p><p>  this.addWindowListener(new WindowAdap

75、ter() {</p><p>  public void windowClosing(WindowEvent arg0) {</p><p>  cconnect();</p><p>  System.exit(0); } });</p><p>  addWindowListener</p><p>  (n

76、ew WindowAdapter()//窗口適配器 { </p><p>  public void windowClosing(WindowEvent e) {</p><p>  System.exit(0);//程序退出 } } ); </p><p>  tf.addActionListener(new ncl

77、istener()); }</p><p>  public void connect() {</p><p>  System.out.println("connnect()..");</p><p><b>  try {</b></p><p>  s=new Socket("127

78、.0.0.1",8888);//設(shè)置客戶 端的IP和端口</p><p>  dos=new DataOutputStream(s.getOutputStream());</p><p>  } catch (UnknownHostException e) {</p><p>  e.printStackTrace();</p><p&

79、gt;  } catch (IOException e) {</p><p>  e.printStackTrace(); }}</p><p>  public void cconnect(){</p><p><b>  try {</b></p><p>  dos.close();</p><

80、p>  s.close();</p><p>  } catch (IOException e) {</p><p>  e.printStackTrace(); } }</p><p>  public class nclistener implements ActionListener{</p><p>  public voi

81、d actionPerformed(ActionEvent e) {</p><p>  String st=tf.getText();</p><p>  ta.setText(st);</p><p>  tf.setText("");</p><p><b>  try {</b></p&

82、gt;<p>  dos.writeUTF(st);</p><p>  dos.flush(); } </p><p>  catch (IOException e1) {</p><p>  e1.printStackTrace();} } } }</p><p><b>  三、 測試結(jié)果</b>&l

83、t;/p><p> ?。ㄒ唬?、進(jìn)入游戲的界面</p><p>  分析:游戲開始的界面有三個(gè)選擇項(xiàng),用戶可以選擇相應(yīng)的角色,選擇</p><p>  完畢后點(diǎn)擊開始進(jìn)入游戲。用戶也可以在下面的聊天框中進(jìn)行聊天。</p><p> ?。ǘ┻x擇角色,點(diǎn)擊開始,開始下棋</p><p>  分析:首先達(dá)到五個(gè)棋子連在一塊的贏了

84、,并在紅色區(qū)域顯示誰贏了!</p><p> ?。ㄈ?、下完后點(diǎn)擊重新開始</p><p>  分析:下完一盤后游戲停止,點(diǎn)擊重新開始,界面回到初始界面,選擇角色繼續(xù)游戲.</p><p> ?。ㄋ模?、游戲過程中退出,自動(dòng)判輸</p><p>  分析:在下棋的過程當(dāng)中誰中途退出,即點(diǎn)擊退出,系統(tǒng)自動(dòng)判斷誰輸</p><p

85、><b> ?。ㄎ澹?、改進(jìn)想法</b></p><p>  這個(gè)系統(tǒng)基本上實(shí)現(xiàn)了要求但是在有些方面還不夠完善。</p><p>  1.觀看角色點(diǎn)擊后不會出發(fā)什么事件,雖然觀看者并不需要做什么但是點(diǎn)擊之后并沒有發(fā)生任何反應(yīng)總感覺缺點(diǎn)什么。想加個(gè)什么功能,但是又不知道加什么才不至于畫蛇添足。</p><p>  2.問題比較大的可能是聊天功

86、能了,本來聊天面板應(yīng)該和棋盤面板在同一個(gè)面板上面,但是聊天功能的程序是寫在了另一個(gè)類里,并且那個(gè)類是繼承了Frame類的,是一個(gè)Application程序,而棋盤是一個(gè)Applet程序,所以當(dāng)我添加這個(gè)類到Applet面板上并不能顯示 ,所以我就打包那個(gè)NetchatClient 類,在棋盤類中加載這個(gè)類,并調(diào)用該類的方法才實(shí)現(xiàn)了聊天功能。</p><p>  3.聊天功能本身也還不夠完善,因?yàn)槊看伟l(fā)送聊天的內(nèi)容

87、后都會覆蓋掉原來的內(nèi)容,這使得用戶不能很直觀的看到聊天的內(nèi)容。但是在修改的過程中出現(xiàn)了許多的問題,所以也就將就者先用了。</p><p>  四、 設(shè)計(jì)體會與小結(jié) </p><p>  這個(gè)課設(shè)題對我來說有一定的挑戰(zhàn)性,因?yàn)槲易约阂膊恢雷约旱降讓W(xué)到了一個(gè)什么樣的境界。但可以肯定,這個(gè)課設(shè)題的要求絕對在我的能力范圍以上。之所以選擇這個(gè)題目是想逼著自己去查更多的資料,學(xué)到更多的東西。<

88、/p><p>  結(jié)果也確實(shí)是這樣的,我在這次課設(shè)中學(xué)到了不少東西,也理解了許多原來不理解的東西。盡管這個(gè)系統(tǒng)做的并不是那么的完善。</p><p>  對于Java中的引用,初始化類等,開始我并不是非常的理解,知道就這么做就能實(shí)現(xiàn)相應(yīng)的功能了,并沒有很深刻的去理解它為什么要這么做。但是真正的要用Java去做一個(gè)東西不理解它是不行的,而且其間這課設(shè)涉及到了Java 中的絕大多數(shù)的知識點(diǎn),如Ja

89、va圖形用戶界面設(shè)計(jì)、Java的異常處理機(jī)制、Java中的多線程程序設(shè)計(jì)、Java輸入輸出流,要應(yīng)用這些東西更要求我去好好理解Java的這些規(guī)則。</p><p>  好在有一定的C++基礎(chǔ)Java 與C++語法類似,并把C++中一些較低級和較難以理解的功能都去掉了,如多繼承、指針等,同時(shí)Java增強(qiáng)了部分功能。所以理解起來也比較容易。</p><p>  但是理解了Java的規(guī)則要把這個(gè)

90、課設(shè)做好也不是那么容易,最難的部分是如何實(shí)現(xiàn)各個(gè)功能的劃分和類的通訊問題。我在這方面就遇到了不少的問題。</p><p>  總結(jié)這次課設(shè),我還是收獲不少。雖然界面也不是很美觀,有點(diǎn)功能間的連接做的也不是特別的好,但是我能認(rèn)識到自己的不足,并且在跟同學(xué)的交流中也學(xué)到了一些他們的設(shè)計(jì)思路,也知道今后要加強(qiáng)哪些方面的知識。</p><p><b>  結(jié)束語</b><

91、;/p><p>  首先感謝xx老師, 在整個(gè)設(shè)計(jì)過程中,出現(xiàn)過很多的難題,但都在老師的幫助下順利解決了,通過設(shè)計(jì)我也更加鞏固了知識,了解問題,改正不足。</p><p><b>  六、 參考文獻(xiàn)</b></p><p>  1. 葉核亞編著、陳道蓄主審.Java課程設(shè)計(jì)實(shí)用教程(第三版)北京.電子工業(yè)出版社</p><p&g

92、t;  2. 柳西玲.許斌編著.Java語言應(yīng)用開發(fā)基礎(chǔ).北京:清華大學(xué)出版社 </p><p>  3.丁振凡 Java 語言實(shí)用教程 :北京郵電大學(xué)出版社</p><p><b>  七、附錄(代碼)</b></p><p>  NetchatClient.java</p><p>  package Netchat

93、Client;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import java.net.*;</p><p>  import java.io.*;</p><p>  import javax.swing.*;

94、</p><p>  public class NetchatClient extends Frame {</p><p>  Frame x=new Frame("liaotianchengxu");</p><p>  TextField tf=new TextField();</p><p>  TextArea t

95、a=new TextArea();</p><p>  Socket s=null;</p><p>  DataOutputStream dos=null;</p><p>  public static void main(String[] args) {</p><p>  new NetchatClient().frame();<

96、;/p><p><b>  }</b></p><p>  public void frame(){</p><p>  System.out.println("frame()");</p><p>  setLocation(20, 400);</p><p>  setSize

97、(300,300);</p><p>  add(tf,BorderLayout.SOUTH);</p><p>  add(ta,BorderLayout.NORTH);</p><p><b>  pack();</b></p><p>  setVisible(true);</p><p>

98、  connect();</p><p>  this.addWindowListener(new WindowAdapter() {</p><p>  public void windowClosing(WindowEvent arg0) {</p><p>  cconnect();</p><p>  System.exit(0);}

99、 });</p><p>  addWindowListener</p><p>  (new WindowAdapter()//窗口適配器 </p><p><b>  { </b></p><p>  public void windowClosing(WindowEvent e){</p&

100、gt;<p>  System.exit(0);//程序退出 </p><p><b>  } </b></p><p><b>  } </b></p><p>  ); tf.addActionListener(new nclistener());</p><p>

101、;<b>  }</b></p><p>  public void connect(){</p><p>  System.out.println("connnect()..");</p><p><b>  try {</b></p><p>  s=new Socket(&

102、quot;127.0.0.1",8888);//設(shè)置客戶 端的IP和端口</p><p>  dos=new DataOutputStream(s.getOutputStream());</p><p>  } catch (UnknownHostException e) {</p><p>  e.printStackTrace();</p>

103、<p>  } catch (IOException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  public void cconnect() {</p

104、><p><b>  try {</b></p><p>  dos.close();</p><p>  s.close();</p><p>  } catch (IOException e) {</p><p>  e.printStackTrace();</p><p>

105、;<b>  }</b></p><p><b>  }</b></p><p>  public class nclistener implements ActionListener{</p><p>  public void actionPerformed(ActionEvent e) {</p>&l

106、t;p>  String st=tf.getText();</p><p>  ta.setText(st);</p><p>  tf.setText("");</p><p><b>  try {</b></p><p>  dos.writeUTF(st);</p><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論