欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

菜鳥初學Java的備忘錄(十)(轉(zhuǎn))-創(chuàng)新互聯(lián)

菜鳥初學Java的備忘錄(十) (轉(zhuǎn))[@more@]

2003年1月26日 星期日 雨

創(chuàng)新互聯(lián)公司主營色尼網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都APP應用開發(fā),色尼h5成都微信小程序搭建,色尼網(wǎng)站營銷推廣歡迎色尼等地區(qū)企業(yè)咨詢

回顧一下昨天所學習的基于連接池的Socket,其原理中的要點如下:服務器開放有限個PooledConnectionHandler線程用來處理連接;客戶的連接請求均加入到Pool連接池中(實際是linklist()對象);PooledConnectionHandler一旦發(fā)現(xiàn)連接池中有連接請求,就立即著手處理;大家都使用同一個Pool(所以它是靜態(tài)變量)

目前為止,有關(guān)Java程序設計的一些基本內(nèi)容都已經(jīng)學習的差不多了.現(xiàn)在是學以致用的時候了.學習任何語言,要想真正的談得上入門,都應該以一個實際的編程經(jīng)驗為標志的,我想.

以前用C++編過一個俄羅斯方塊,覺得這個游戲的程序設計挺能體現(xiàn)面向?qū)ο蟮乃枷氲?Java和C++有很多共同點,依葫蘆畫瓢誰都會,那么就重新實現(xiàn)一遍吧,反正也忘得差不多了,權(quán)當溫故知新.另外,既然花了那么多時間來研究Socket,那就索性編出一個網(wǎng)絡版的來.

俄羅斯方塊的程序需要圖形用戶界面(GUI),而前面編的Java程序中,只有Applet程序?qū)崿F(xiàn)了圖形界面,但那是在AppletViewer或者瀏覽器的幫助下完成的.用Java來實現(xiàn)圖形用戶界面,我們需要用到Frame類.Frame類是窗口類(windows)類的子類,是圖形用戶界面的基本窗口.閱讀下面一個小程序并實現(xiàn)一下,就基本上可以對Java下的圖形用戶界面有所了解了.

文件名:FrameMemo.java
功能:彈出一個帶有菜單的框架并且在框架里顯示信息.在窗口中任意位置點擊一下,程序退出.

import java.awt.*;

public class FrameMemo extends Frame
{
  public String motd;

  public FrameMemo(String s)
  {
  super(s);//super在這里代表的是父類,和this所代表的本類相應,因此這里調(diào)用的是父類的構(gòu)造函數(shù)
  motd=s;
  resize(300,300);
  SetMenu();
  }


  public FrameMemo()//重載的構(gòu)造函數(shù)
  {
  this("This is a Memo of Frame");//這里調(diào)用的是FrameMemo(S)構(gòu)造 函數(shù)
  SetMenu();
  }

  public void SetMenu()
  {
  Menu m,n;
  m=new Menu("Examples");
  m.add(new MenuItem("Basic"));
  m.add(new MenuItem("Simple"));

  n=new Menu("More Examples");
  n.add(new MenuItem("Sub Basic"));
  m.add(n);

  MenuBar mb=new MenuBar();
  mb.add(m);
  setMenuBar(mb);
  }

  public void paint(Graphics g)
  {
  g.drawString(motd,15,15);
  g.drawString("Click anywhere to Exit",45,45);
 
  }

  public void start()
  {
  show();
  }

  public boolean mouseDown(Event e,int x,int y)
  {
  hide();//隱藏窗口
  dispose();//釋放資源
  System.exit(0);
  return false;
  }

  public static void main(String args[])
  {
  FrameMemo m;
  m=new FrameMemo();
  m.start();
  }
}

建立了窗口之后,我們還需要在窗口中擺放各種圖形界面對象,也就是說要布局.布局的原理在前面介紹過,需要使用到布局容器,然后把對象按照一定的規(guī)則填進去.下面一個例子中演示了大部分我們需要用到的容器.我給出了很詳細的注釋,幫助我以后一旦忘了Java的語法后,可以迅速的尋找失去的記憶.

file://布局范例
file://j2sdk1.4.1下編譯通過

import java.awt.*;
import java.applet.*;

public class Layout extends Frame
{
  Panel fnames,styles;//兩個字體按鈕放到fnames這個Panel中,三個風格按鈕放到styles這個Panel中
  Button sans,serif;
  Button bold,bigger,smaller;//定義兩個字體按鈕,三個風格按鈕
  SampleCanvas sample;//定義重載后的畫布對象
  String fName=new String("SansSerif");
  int fBold=0;
  int fSize=12;

  public Layout(){
  super("A Memo of Layout");
  setFont(new Font("Sans",Font.BOLD,12));
  setLayout(new BorderLayout());//設置BorderLayout布局,該方式可安排五個元素
  file://方位為東西南北中

file://下面的程序為設置底部即南邊的兩個按鈕
  fnames=new Panel();
  fnames.setLayout(new GridLayout(1,2,5,10));//為panel設置GridLayout布局
  file://該布局為網(wǎng)格布局
  file://四個參數(shù)分別為
  file://行數(shù),列數(shù),水平間隔(像素),垂直間隔(像素)
  sans=new Button("Sans Serif");
  fnames.add(sans);
  serif=new Button("Sans Serif");
  fnames.add(serif);  file://分別添加兩個按鈕

  add(fnames,"South");  file://將Panel列入BorderLayout布局中

file://下面的程序為設置左部即西邊的三個按鈕
  styles=new Panel();
  styles.setLayout(new GridLayout(3,1,10,5));
  bold=new Button("Bold");
  styles.add(bold);
  bigger=new Button("bigger");
  styles.add(bigger);
  smaller=new Button("Smaller");
  styles.add(smaller);
  add(styles,"West");
  sample=new SampleCanvas();
  add(sample,"Center");
  setSize(200,200);//這句話別掉羅
//  setVisible(true);
   
  }
 
  public void start(){
  show();
  } 
 
  public static void main(String[] args)//初始化
  {
  Layout MainFrame=new Layout();
  MainFrame.start();
 
  }

  class SampleCanvas extends Canvas
  {
  String message;

  public SampleCanvas()  file://類的構(gòu)造函數(shù)
  {
  rewrite("SanSerif");  file://只在創(chuàng)建對象的時候執(zhí)行,java不支持析構(gòu)函數(shù)
  }

  public void rewrite(String s)
  {
  setFont(new Font(fName,fBold,fSize));
  message="This font is"+fName;
  repaint();
  }

  public void paint(Graphics g)
  {
  g.drawString(message,10,50);
  }
  }
}

(1月28日)在網(wǎng)絡版的俄羅斯方塊程序中,應該包含有以下幾個類:

1.MainFrame:主界面類,從Frame繼承,基本定義及類中方法功能如下

class MainFrame extends Frame{
  public MainFrame(){//初始化工作,主要是給對象(按鈕,畫布等)布局
  } 
  public boolean keyDown(Event e,int key){//處理鍵盤操作
  }
  public boolean action(Event e,object arg){//處理鼠標操作
  } 
  public void start(){//看前幾天筆記
  show();
  }
  public static void main(String args[]) throws IOException{
  MainFrame app;
  app=new MainFrame();
  app.start(); 
  }
}

2.MainCanvas類.該畫布對象將完成所有與方塊有關(guān)的邏輯操作,從Canvas類繼承

3.Block類,即方塊類.該類存有方塊的形狀的信息(一個多維數(shù)組)等等,該類將與MainCanvas類相輔相成.實際上也是可以將Block和MainCanvas做成一個類的,在我原來的C++版本中就是這樣的.但是,從面向?qū)ο蟮挠^點來考慮,分成兩個類比較合適.

4.ClientThread類,即客戶端的線程類

5.ServerThread類,即服務器端的線程類

ServerThread和ClientThread負責網(wǎng)絡同步的操作

分析到這一部工作就基本上完成了.我決定放棄具體實現(xiàn)網(wǎng)絡版俄羅斯方塊的計劃,因為重復我曾經(jīng)十分熟悉的思路是一件十分無趣的事情.

我準備將目標鎖定在基于Java Applet的電子白板的實現(xiàn)上.相關(guān)的研究我會放到年后的另一個系列當中.

歷時半個月的菜鳥筆記終于結(jié)束了.15天對于任何一門語言的入門都已經(jīng)足夠,畢竟語言只是體現(xiàn)設計思想的工具,對于任何一種工具的熟悉和使用都不應該花費太多時間.如何用工具打造精美的藝術(shù)品才是應該時常在腦海中思索的.

在Java入門的過程當中,有三本書給了我不少的幫助.第一本是機械工業(yè)出版社的,由一個英國人撰寫的.書中語言條理清楚,深入淺出,兩天時間就完全可以讓你初步掌握Java的基礎.給我的感覺,國外人寫最基礎的和最深奧的技術(shù)類教材都很有一手.第二本是譚浩強主編的,名副其實的入門級參考書,對初學者來說,內(nèi)容比較齊全.最后一本是chm格式的Think in Java,幫助我更加深入的了解Java,尤其是線程和同步方面的內(nèi)容.另外,我曾經(jīng)舉過的所有關(guān)于Socket的范例都源自于網(wǎng)上下的一套如何用java編寫Socket程序的教材.這套教材也非常實用.

好了,祝CDSN的朋友新年快樂!過 年 去!

附:下載地址
1.書名:Java 套接字(socket)101
  注釋:本教程將告訴您什么是套接字(socket)并教您如何在 Java 程序中使用它。通過實際分析幾個示例,從單個客戶機/服務器通訊到池中的一組客戶機訪問服務器,您將學到如何用套接字處理現(xiàn)實世界中碰到的典型情形。
  URL:  http://www-900.ibm.com/developerWorks/cn/education/java/j-sockets/tutorial/j-sockets.zip

2.書名:Think in Java(中文版)---chm格式
  URL:  http://www.code-labs.com/manual/Think%20In%20Java.chm

目前仍然有效


當前標題:菜鳥初學Java的備忘錄(十)(轉(zhuǎn))-創(chuàng)新互聯(lián)
新聞來源:http://aaarwkj.com/article0/ppgoo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化外貿(mào)網(wǎng)站建設、動態(tài)網(wǎng)站、響應式網(wǎng)站、商城網(wǎng)站、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設
在线观看不卡的黄色地址| 欧美日韩综合精品无人区| 97国产精品视频在线观看| 亚洲精品高清一区二区| 中文字幕精品一区二区三区精品| 亚洲五月综合激情综合久久| 伊人激情久久综合中文字幕| 成人欧美一区二区三区av| 日本东京热在线免费观看| 亚洲天堂欧美日韩一区| 日韩精品亚洲一区二区三区免费| 特色特色欧美黄色影院| 亚洲无人区码一码二码三码| 91日韩国产中文字幕| 亚洲国产av永久精品成人| 国产精品—色哟哟视频| 午夜国产激情福利网站| 韩国成人伦理片在线观看| 欧美日韩黄色在线观看| 久久综合激情亚洲欧美专区| 91国产香蕉在线观看| 国产视频一区二区麻豆| 久久三级中文欧大战字幕| 亚洲精品偷拍在线观看| 久久亚洲天堂色图不卡| 深夜福利视频一区二区| 免费观看日本成人午夜大片| 凹凸69堂国产成人精品| 中文字幕国产精品综合一区| 一本色道久久亚洲综合精品蜜桃| 亚洲天堂一区二区av| 91老熟女露脸嗷嗷叫| 亚洲色图视频免费观看| 91精品免费播放在线观看| 欧美视频在线观看香蕉| 国产精品一区二区欧美激情| 亚洲国产精品综合久久久| 日本加勒比一本在线观看| 日本韩国国语对白一区二区三区| 久久精品噜噜噜成人av农村| 在线免费观看国产不卡|