黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

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

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

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

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

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

  14.1 使用模式/視圖技術

  在我們開始繪制一個草圖之前需要提出一個概念,這就是在Sktche程序中將增加打算如何管理一張草圖的數據,因為這會影響處理事件的位置和方式。我們已經定義了一個應用程序窗口類Sketcher,但是這個類并不是存儲草圖基本數據的最佳地方。有的時候我們希望把草圖保存在一個文件中,串行化是最簡單的實現方式。如果我們打算使用串行化存儲一張草圖,那么在實現SketchFrame類時就不必把所有的東西與建立Sketch的有關數據混在一起。另外,如果我們從GUI定義中分離出定義草圖的基本數據,就會使程序更容易實現。這又回到了我們在第11章中提到的MVC技術,它被應用于Swing組件額度定義中。

  理論上,我們應該為此目的特別地設計一個類來管理草圖數據,這個類就是草圖模式。

  表示模式類中數據的視圖類(viem)將顯示草圖并處理用戶交互,因此,這個類將組合瀏覽功能和草圖的控制器。通常,GUI的建立和操作并不特別指定在SketchFrame類中我們將要處理的視圖。這不僅是我們在Sketcher程序中實現操作的方法,而且也是一種很好的途徑。

  模式對象將包含構成草圖文本和圖形的混合體。我們將調用模式類SketchModel及描述這個模式的視圖類SketchView,但在下一章,我們才把視圖加到程序中。下面的示意圖將說明在Sketcher中類之間的關系。

  應用程序對象將全面負責管理程序中所包含的各種對象之間的連接。只要應用程序類擁有使每個對象都可用的方法,任何可訪問應用程序對象的對象都可以與任何其他的對象進行通信,因此應用程序扮演了一個對象之間通信的通道角色。

  

  注意,SketchFrame不是視圖類,它只定義應用程序窗口和與之關聯的GUI組件。當我們在下一章中創建SketchView對象時,將把SketchView對象插入到SketschFrame對象的內容窗格中,并使用布局管理器來管理內容窗格。由于視圖類的定泛獨立于應用程序類。所以我們從菜單中分離出了草圖視圖和用來與應用程序進行交互的其他組件。這樣做的好處是顯不文檔的區域可以獨立于應用程序窗口而擁有自己的坐標系統。

  為了在Sketcher中實現模式/視圖結構,我們需要為模式和視圖定義相應的類,至少是一個框架。包含定義草圖數據的類可以定義成這種結構形式:

  import java.util;

  class sketchModel extends observable

  {

  //Detail of the rest of class to be filled in later...

  }

  顯然在這個類中會有很多操作要做,我們將在以后逐漸將它們添加進來。由于這個類擴展了()Observable類,所以可以利用它把視圖類注冊為一個觀察器,并自動地通告所有的發生變化的視圖。在有多個視圖時,這個工具將得到視圖自己的內容。

  我們可以把視圖類定義為派生于JComponent的組件。這樣將會內置組件操作的所有方法,若需要的話,可以重載其中的任何一個方法。視圖類也需要實現fObjectveru接口以便可以用模式對它進行注冊。這是一個框架:

  import javax.swing.*;

  import java.util,*; //For observer

  calss sketchview extends JComponent

  implements Observer

  {

  public SketchView(Skctcher theApp)

  {

  this.theApp=theApp;

  }

  //Method called by Observable object when it changes

  public void update(Observable o,object rectangle)

  {

  //code to respond to changes in the model...

  }

  private Sketcher theApp; //The application object

  }

  為了顯示模式的內容,視圖肯定需要對它進行訪問,因此構造函數要有一個自變量負責把應用程序對象傳遞給它。由于在視圖中存儲的是應用程序對象,而不是模式的引用,并且添加到應用程序對象中的一個方法可返回模式的引用,所以我們可以讓視圖對象獨立于模式對象。如果模式表示了一個完全不同的對象,比如加載了一個新文件。我們并不需要改變視圖對象,只要新模式把視圖注冊為觀察器,視圖就會在發生變化的模式通告時自動地重畫草圖。

  為了把模式與它的視圖集成到Sketcher應用程序中,我們需要為Stetcher類增加一些代碼:

  import java.awt.*;

  import java.awt.event.*;

  import java.util.*;

  public class Sketcher

  {

  public static void main(String[] args)

  {

  theApp = new Sketcher(); // Create the application object

  theApp.init(); // ... and initialize it

  }

  public void init()

  {

  window = new SketchFrame("Sketcher", this); // Create the app window

  Toolkit theKit = window.getToolkit(); // Get the window toolkit

  Dimension wndSize = theKit.getScreenSize(); // Get screen size

  // Set the position to screen center & size to 2/3 screen size

  window.setBounds(wndSize.width/6, wndSize.height/6, // Position

  2*wndSize.width/3, 2*wndSize.height/3); // Size

  window.addWindowListener(new WindowHandler()); // Add window listener

  sketch = new SketchModel(); // Create the model

  view = new SketchView(this); // Create the view

  sketch.addObserver((Observer)view); // Register the view with the model

  window.getContentPane().add(view, BorderLayout.CENTER);

  window.setVisible(true);

  }

  // Return a reference to the application window

  public SketchFrame getWindow()

  {

  return window;

  }

  // Return a reference to the model

  public SketchModel getModel()

  {

  return sketch;

  }

  // Return a reference to the view

  public SketchView getView()

  {

  return view;

  }

  // Handler class for window events

  class WindowHandler extends WindowAdapter

  {

  // Handler for window closing event

  public void windowClosing(WindowEvent e)

  {

  window.dispose(); // Release the window resources

  System.exit(0); // End the application

  }

  }

  private SketchModel sketch; // The data model for the sketch

  private SketchView view; // The view of the sketch

  private static SketchFrame window; // The application window

  private static Sketcher theApp; // The application object

  }

  SketchFrame構造函數需要做如下修改:

  public SketchFrame(String title, Sketcher theApp)

  {

  setTitle(title); // Set the window title

  this.theApp = theApp;

  // Rest of the constractor as before…

  }

  需要在SketchFrarme類中增加theApp變量。

  private Stretcher theApp.s

  在Sketcher類中有些返回應用程序窗口、模式和視圖引用的新方法,這些方法的每個都可從能夠引用應用程序的地方訪問。

  建立了模式和視圖對象之后,我們把視圖注冊為模式的觀察器這樣使模式發生變化時能夠通知給視圖。然后,我們將View添加到Window對象的內容窗格中,這是主應用程序窗口。由于內容窗格的BorderLayout管理器把它加到了中心,所以view將占據窗格中其余的所有空間。

  現在,我們粗略地知道了前進的方向,讓我們上路,繼續前進。

  相關推薦:

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

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

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

文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
Copyright © 2004- 考試吧計算機等級考試網 All Rights Reserved 
中國科學院研究生院權威支持(北京)
在線模擬試題
考證通關殺器
考試最新資訊
一次通關技巧
主站蜘蛛池模板: 日日操操操| 本田岬最猛喷一地在线播放 | yin乱的日子小说 | 伊人精品视频 | 一级特黄录像免费播放中文版 | 99成人在线 | 日韩欧美亚洲国产 | 日本男女网站 | 在线精品国内外视频 | 国产在线a不卡免费视频 | 国产日韩在线看 | 草草精品视频 | 精品视频一区二区三区在线观看 | 在线日韩中文字幕 | 成人午夜在线视频 | 一边脱一边摸一边揉免费 | 免费国产好深啊好涨好硬视频 | 香蕉视频免费在线观看 | 国产精品系列在线一区 | 九色综合久久综合欧美97 | 亚洲成人精品久久 | 久操色| 26uuu另类欧美亚洲日本 | 久久人人爽人人爽人 | 国产黄大片在线观看 | 自拍偷拍 欧美日韩 | 久久精品一区二区国产 | 欧美日韩亚洲二区在线 | 黄色福利片 | 国产91精品系列在线观看 | 欧美人禽zozk伦交 | 欧美日韩中文在线视频 | 亚洲精品成人网久久久久久 | 一级欧美在线的视频 | 青青艹在线视频 | 欧美不卡在线 | 五月婷在线视频 | 毛片午夜| 中国一级片免费看 | 九月婷婷人人澡人人添人人爽 | 亚洲欧美日韩高清专区一区 |