在线现看午夜福利片|女人16久久免费视频|鲁丝片一区鲁丝片二区鲁丝|一区二区三区欧美在线

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

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

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

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

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

              14.1 使用模式/視圖技術

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

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

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

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

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

              

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

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

              import java.util;

              class sketchModel extends observable

              {

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

              }

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

              我們可以把視圖類定義為派生于JComponent的組件。這樣將會內置組件操作的所有方法,若需要的話,可以重載其中的任何一個方法。視圖類也需要實現(xiàn)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

              }

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

              為了把模式與它的視圖集成到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構造函數(shù)需要做如下修改:

              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類中有些返回應用程序窗口、模式和視圖引用的新方法,這些方法的每個都可從能夠引用應用程序的地方訪問。

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

              現(xiàn)在,我們粗略地知道了前進的方向,讓我們上路,繼續(xù)前進。

              相關推薦:

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

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

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

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