首頁 - 網(wǎng)校 - 萬題庫 - 直播 - 雄鷹網(wǎng)校 - 團購 - 書城 - ? - 學習通 - 導航 -
首頁網(wǎng)校萬題庫直播雄鷹網(wǎng)校團購書城模考論壇實用文檔作文大全寶寶起名
2015中考
法律碩士
2015高考
MBA考試
2015考研
MPA考試
在職研
中科院
考研培訓
專升本
自學考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點日語
職稱英語
口譯筆譯
申碩英語
零起點韓語
商務(wù)英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點英語
托?荚
托業(yè)考試
零起點法語
雅思考試
成人英語三級
零起點德語
等級考試
華為認證
水平考試
Java認證
職稱計算機 微軟認證 思科認證 Oracle認證 Linux認證
公 務(wù) 員
導游考試
物 流 師
出版資格
單 證 員
報 關(guān) 員
外 銷 員
價格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業(yè)培訓
社會工作者
銀行從業(yè)
教師資格
營養(yǎng)師
保險從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國際商務(wù)
心理咨詢
營 銷 師
司法考試
國際貨運代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護士
會計從業(yè)資格
基金從業(yè)資格
統(tǒng)計從業(yè)資格
經(jīng)濟師
精算師
統(tǒng)計師
會計職稱
法律顧問
ACCA考試
初級會計職稱
資產(chǎn)評估師
高級經(jīng)濟師
注冊會計師
高級會計師
美國注冊會計師
審計師考試
國際內(nèi)審師
注冊稅務(wù)師
理財規(guī)劃師
一級建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價師
二級建造師
招標師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質(zhì)量工程師
巖土工程師
注冊給排水
造價員考試
注冊計量師
環(huán)保工程師
化工工程師
暖通工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
消防工程師
監(jiān)理工程師
房地產(chǎn)估價
土地估價師
安全評價師
房地產(chǎn)經(jīng)紀人
投資項目管理師
環(huán)境影響評價師
土地登記代理人
寶寶起名
繽紛校園
實用文檔
入黨申請
英語學習
思想?yún)R報
作文大全
工作總結(jié)
求職招聘 論文下載 直播課堂
您現(xiàn)在的位置: 考試吧 > 計算機等級考試 > 計算機二級考試 > JAVA > 復習資料 > 正文

2015計算機等級考試二級Java入門教程第十四章(8)

來源:考試吧 2015-02-06 15:43:56 考試吧:中國教育培訓第一門戶 模擬考場
考試吧整理了“2015計算機等級考試二級Java入門教程”,望給備考2015年計算機等級考試的考生帶來幫助!

  點擊查看:2015計算機等級考試二級Java入門教程章節(jié)匯總

  點擊查看:2015計算機等級考試二級Java入門教程第十四章匯總

  14.8 定義自己的幾何圖形

  在Sketcher中定義幾何圖形的所有類都靜態(tài)地嵌套在Element類中。正像我們已經(jīng)說過的,這樣做除了能夠保證幾何圖形類定義在一起外,還避免了Java類庫與Rectangle這樣的類發(fā)生沖突的可能。

  我們可以從最簡單的描述直線類開始。

  定義直線

  一條直線由兩個點和它的顏色定義。我們可以在基類Element中嵌套定義Line類,如下所示:

  import java.awt.*; //For the Shape class

  import java.awt.geom.*; //For classes defining shapes

  class Element

  //Code defining the base class....

  //Nested class defining a line...

  public static class Line extends Element

  {

  public Line(Point start,Point ebd, Color)

  {

  super(color);

  line=new Line2D.Double(start,end);

  }

  public Shape getshape()

  {

  return line;

  }

  public java.awt.Rectangle getBounds()

  {

  return line.getBounds();

  }

  public void modify(Point start,Point last)

  {

  line.x2=last.x

  line.y2=last.y

  }

  private Line2D.Double line;

  }

  }

  Line類是static。因此它不從屬于任何一個可用的Element對象。構(gòu)造函數(shù)有一個參數(shù),分別為Point直線的兩個端點以及它的顏色,構(gòu)造函數(shù)的Point可以是Point2D類型,或者當Point2D是Paint的超類時也一可以是Point,在把顏色傳遞給基類構(gòu)造函數(shù)以后,把這條直線創(chuàng)建為Line2D.Double對象。由于這個類實現(xiàn)了Shape接口,所以可以從getshape方法以Shape類型返回它。

  getBounds()方法不會這樣簡單。我們只用Line對象的getBounds()方法返回了產(chǎn)生的Rectangle對象。要注意我們是如何限定返同類型的。這樣限定是因為我們將耍把Rectangle類嵌套到Element類中,如果我們這樣實現(xiàn),編譯程序?qū)堰@里的Rectangle類型解釋為我們的矩形類,而不是定義在java.awt包中的那個矩形類。在出現(xiàn)這類沖突時,你總是可以提供限定的類名。

  如果你把保存為Element.java的類定義Element放在Sketcher類的同一個目錄中,所需要做的全部工作就是確保將MouseHandler類中的CreateElement()成員,除Element.Line之外的所有構(gòu)造函數(shù)都變成注釋,該類是SketchView的內(nèi)置類。方法的代碼應(yīng)該這樣:

  private Element createElement(Point start, Point end)

  {

  switch(theApp.getWindow().getElementType())

  {

  case LINE:

  return new Element.Line(start, end,

  theApp.getWindow().getElementColor());

  // case RECTANGLE:

  // return new Element.Rectangle(start, end,

  // theApp.getWindow().getElementColor());

  // case CIRCLE:

  // return new Element.Circle(start, end,

  // theApp.getWindow().getElementColor());

  // case CURVE:

  // return new Element.Curve(start, end,

  // theApp.getWindow().getElementColor());

  }

  return null;

  }

  如果你編譯并運行Stretcher,應(yīng)該能夠繪制一幅如下所示的圖形。

  

  我們在此還只能繪制直線。試著繪制一些東西,否則將會拋出Nu1lPointException,這是因為CreateElement()方法將返回null,而不是幾何圖形的引用。

  如何工作

  當你拖動鼠標時,Element_Line對象被反復地建立并且進行繪制來產(chǎn)生橡皮筋的效果。每條直線從你按下鼠標按鍵的位置點到當前光標位置。試著繪制不同的顏色。這些操作應(yīng)該都能夠完成。如果不能操作,或許是因為你忘記刪除臨時放在SketchFrame的ColorAction actionPerformed()方法中的getContentPane().setBackground(Color)調(diào)用了。

  如果你鍵入完代碼(我希望這樣),若添加到Sketcher中的代碼量較人時,有可能會出現(xiàn)一些錯誤。在這種情況下,請回到本書前面的代碼中找出其原因。在你做這項工作之前,試著使用JDK的Java調(diào)試器或者用print()標識出可能出現(xiàn)問題的地方,這樣你就可以繼續(xù)跟蹤。在你編寫自己的代碼時這樣做是個好習慣。

  定義矩形

  繪制矩形的交互方法類似于直線。當你繪制一個矩形時,鼠標按下的點定義矩形的第一個角當你拖動鼠標光標位置時,將定義相對著的角。如下說明所不:

  釋放鼠標按鍵將建立被存儲在模式中最后的矩形圖形。正像你所看到的,你按下鼠標按鍵的光標位置可以作為矩形的任何一個角。從便于應(yīng)用的角度來說,這樣很好:但是我們的代碼實際上一認為Rectangle2D對象指的總是左上角,以及寬度和高度。

  

  示意圖顯示了4種關(guān)于繪制矩形拖動鼠標路徑標位最小的端點,寬度是兩個x和y坐標值的最小的端點,寬度是兩個X坐標差的絕對值,高度是兩個y坐標差的絕對值。我們可以按照這種形式定義我們的類。

  相關(guān)推薦:

  2015計算機等級考試二級Java入門教程章節(jié)匯總

  2014計算機二級Java程序設(shè)計真題及答案(網(wǎng)友版)

  考試吧特別策劃:2015年計算機等級考試報考指南

文章搜索
版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。
Copyright © 2004- 考試吧計算機等級考試網(wǎng) All Rights Reserved 
中國科學院研究生院權(quán)威支持(北京)
在線模擬試題
考證通關(guān)殺器
考試最新資訊
一次通關(guān)技巧