亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chapter13.htm

?? Thinking In Java第二版(中文)
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Thinking in Java | Chinese Version by Trans Bot</title>

<meta name="Microsoft Theme" content="inmotion 111, default"></head>

<body background="../_themes/inmotion/inmtextb.gif" tppabs="http://member.netease.com/%7etransbot/Thinking%20in%20Java/_themes/inmotion/inmtextb.gif" bgcolor="#FFFFCC" text="#000000" link="#800000" vlink="#996633" alink="#FF3399">

<p>第十三章 創(chuàng)建窗口和程序片<br>
<br>
在Java 1.0中,圖形用戶接口(GUI)庫最初的設計目標是讓程序員構建一個通用的GUI,使其在所有平臺上都能正常顯示。<br>
但遺憾的是,這個目標并未達到。事實上,Java 1.0版的“抽象Windows工具包”(AWT)產生的是在各系統(tǒng)看來都同樣欠佳的圖形用戶接口。除此之外,它還限制我們只能使用四種字體,并且不能訪問操作系統(tǒng)中現(xiàn)有的高級GUI元素。同時,Jave1.0版的AWT編程模型也不是面向對象的,極不成熟。這類情況在Java1.1版的AWT事件模型中得到了很好的改進,例如:更加清晰、面向對象的編程、遵循Java 
Beans的范例,以及一個可輕松創(chuàng)建可視編程環(huán)境的編程組件模型。Java1.2為老的Java 
1.0 AWT添加了Java基礎類(AWT),這是一個被稱為“Swing”的GUI的一部分。豐富的、易于使用和理解的Java 
Beans能經過拖放操作(像手工編程一樣的好),創(chuàng)建出能使程序員滿意的GUI。軟件業(yè)的“3次修訂版”規(guī)則看來對于程序設計語言也是成立的(一個產品除非經過第3次修訂,否則不會盡如人意)。<br>
Java的主要設計目的之一是建立程序片,也就是建立運行在WEB 
瀏覽器上的小應用程序。由于它們必須是安全的,所以程序片在運行時必須加以限制。無論怎樣,它們都是支持客戶端編程的強有力的工具,一個重要的應用便是在Web上。<br>
在一個程序片中編程會受到很多的限制,我們一般說它“在沙箱內”,這是由于Java運行時一直會有某個東西——即Java運行期安全系統(tǒng)——在監(jiān)視著我們。Jave 
1.1為程序片提供了數字簽名,所以可選出能信賴的程序片去訪問主機。不過,我們也能跳出沙箱的限制寫出可靠的程序。在這種情況下,我們可訪問操作系統(tǒng)中的其他功能。在這本書中我們自始至終編寫的都是可靠的程序,但它們成為了沒有圖形組件的控制臺程序。AWT也能用來為可靠的程序建立GUI接口。<br>
在這一章中我們將先學習使用老的AWT工具,我們會與許多支持和使用AWT的代碼程序樣本相遇。盡管這有一些困難,但卻是必須的,因為我們必須用老的AWT來維護和閱讀傳統(tǒng)的Java代碼。有時甚至需要我們編寫AWT代碼去支持不能從Java1.0升級的環(huán)境。在本章第二部分,我們將學習Java 
1.1版中新的AWT結構并會看到它的事件模型是如此的優(yōu)秀(如果能掌握的話,那么在編制新的程序時就可使用這最新的工具。最后,我們將學習新的能像類庫一樣加入到Java 
1.1版中的JFC/Swing組件,這意味著不需要升級到Java 1.2便能使用這一類庫。<br>
大多數的例程都將展示程序片的建立,這并不僅僅是因為這非常的容易,更因為這是AWT的主要作用。另外,當用AWT創(chuàng)建一個可靠的程序時,我們將看到處理程序的不同之處,以及怎樣創(chuàng)建能在命令行和瀏覽器中運行的程序。<br>
請注意的是這不是為了描述類的所有程序的綜合解釋。這一章將帶領我們從摘要開始。當我們查找更復雜的內容時,請確定我們的信息瀏覽器通過查找類和方法來解決編程中的問題(如果我們正在使用一個開發(fā)環(huán)境,信息瀏覽器也許是內建的;如果我們使用的是SUN公司的JDK則這時我們要使用WEB瀏覽器并在Java根目錄下面開始)。附錄F列出了用于深入學習庫知識的其他一些參考資料。<br>
<br>
13.1 為何要用AWT?<br>
對于本章要學習的“老式”AWT,它最嚴重的缺點就是它無論在面向對象設計方面,還是在GUI開發(fā)包設計方面,都有不盡如人意的表現(xiàn)。它使我們回到了程序設計的黑暗年代(換成其他話就是“拙劣的”、“可怕的”、“惡劣的”等等)。必須為執(zhí)行每一個事件編寫代碼,包括在其他環(huán)境中利用“資源”即可輕松完成的一些任務。<br>
許多象這樣的問題在Java 1.1里都得到了緩解或排除,因為:<br>
(1)Java 1.1的新型AWT是一個更好的編程模型,并向更好的庫設計邁出了可喜的一步。而Java 
Beans則是那個庫的框架。<br>
(2)“GUI構建器”(可視編程環(huán)境)將適用于所有開發(fā)系統(tǒng)。在我們用圖形化工具將組件置入窗體的時候,Java 
Beans和新的AWT使GUI構建器能幫我們自動完成代碼。其它組件技術如ActiveX等也將以相同的形式支持。<br>
<br>
既然如此,為什么還要學習使用老的AWT呢?原因很簡單,因為它的存在是個事實。就目前來說,這個事實對我們來說顯得有些不利,它涉及到面向對象庫設計的一個宗旨:一旦我們在庫中公布一個組件,就再不能去掉它。如去掉它,就會損害別人已存在的代碼。另外,當我們學習Java和所有使用老AWT的程序時,會發(fā)現(xiàn)有許多原來的代碼使用的都是老式AWT。<br>
AWT必須能與固有操作系統(tǒng)的GUI組件打交通,這意味著它需要執(zhí)行一個程序片不可能做到的任務。一個不被信任的程序片在操作系統(tǒng)中不能作出任何直接調用,否則它會對用戶的機器做出不恰當的事情。一個不被信任的程序片不能訪問重要的功能。例如,“在屏幕上畫一個窗口”的唯一方法是通過調用擁有特殊接口和安全檢查的標準Java庫。Sun公司的原始模型創(chuàng)建的信任庫將僅僅供給Web瀏覽器中的Java系統(tǒng)信任關系自動授權器使用,自動授權器將控制怎樣進入到庫中去。<br>
但當我們想增加操作系統(tǒng)中訪問新組件的功能時該怎么辦?等待Sun來決定我們的擴展被合并到標準的Java庫中,但這不一定會解決我們的問題。Java 
1.1版中的新模型是“信任代碼”或“簽名代碼”,因此一個特殊服務器將校驗我們下載的、由規(guī)定的開發(fā)者使用的公共密鑰加密系統(tǒng)的代碼。這樣我們就可知道代碼從何而來,那真的是Bob的代碼,還是由某人偽裝成Bob的代碼。這并不能阻止Bob犯錯誤或作某些惡意的事,但能防止Bob逃避匿名制造計算機病毒的責任。一個數字簽名的程序片——“被信任的程序片”——在Java 
1.1版能進入我們的機器并直接控制它,正像一些其它的應用程序從信任關系自動授權機中得到“信任”并安裝在我們的機器上。<br>
這是老AWT的所有特點。老的AWT代碼將一直存在,新的Java編程者在從舊的書本中學習時將會遇到老的AWT代碼。同樣,老的AWT也是值得去學習的,例如在一個只有少量庫的例程設計中。老的AWT所包括的范圍在不考慮深度和枚舉每一個程序和類,取而代之的是給了我們一個老AWT設計的概貌。<br>
<br>
13.2 基本程序片<br>
庫通常按照它們的功能來進行組合。一些庫,例如使用過的,便中斷擱置起來。標準的Java庫字符串和矢量類就是這樣的一個例子。其他的庫被特殊地設計,例如構建塊去建立其它的庫。庫中的某些類是應用程序的框架,其目的是協(xié)助我們構建應用程序,在提供類或類集的情況下產生每個特定應用程序的基本活動狀況。然后,為我們定制活動狀況,必須繼承應用程序類并且廢棄程序的權益。應用程序框架的默認控制結構將在特定的時間調用我們廢棄的程序。應用程序的框架是“分離、改變和中止事件”的好例子,因為它總是努力去嘗試集中在被廢棄的所有特殊程序段。<br>
程序片利用應用程序框架來建立。我們從類中繼承程序片,并且廢棄特定的程序。大多數時間我們必須考慮一些不得不運行的使程序片在WEB頁面上建立和使用的重要方法。這些方法是:<br>
<br>
591頁表<br>
<br>
方法 作用<br>
<br>
init() 程序片第一次被創(chuàng)建,初次運行初始化程序片時調用<br>
start() 每當程序片進入Web瀏覽器中,并且允許程序片啟動它的常規(guī)操作時調用(特殊的程序片被stop()關閉);同樣在init()后調用<br>
paint() 基礎類Component的一部分(繼承結構中上溯三級)。作為update()的一部分調用,以便對程序片的畫布進行特殊的描繪<br>
stop() 每次程序片從Web瀏覽器的視線中離開時調用,使程序片能關閉代價高昂的操作;同樣在調用destroy()前調用<br>
destroy() 
程序片不再需要,將它從頁面中卸載時調用,以執(zhí)行資源的最后清除工作<br>
<br>
現(xiàn)在來看一看paint()方法。一旦Component(目前是程序片)決定自己需要更新,就會調用這個方法——可能是由于它再次回轉屏幕,首次在屏幕上顯示,或者是由于其他窗口臨時覆蓋了你的Web瀏覽器。此時程序片會調用它的update()方法(在基礎類Component中定義),該方法會恢復一切該恢復的東西,而調用paint()正是這個過程的一部分。沒必要對paint()進行過載處理,但構建一個簡單的程序片無疑是方便的方法,所以我們首先從paint()方法開始。<br>
update()調用paint()時,會向其傳遞指向Graphics對象的一個句柄,那個對象代表準備在上面描繪(作圖)的表面。這是非常重要的,因為我們受到項目組件的外觀的限制,因此不能畫到區(qū)域外,這可是一件好事,否則我們就會畫到線外去。在程序片的例子中,程序片的外觀就是這界定的區(qū)域。<br>
圖形對象同樣有一系列我們可對其進行的操作。這些操作都與在畫布上作圖有關。所以其中的大部分都要涉及圖像、幾何菜狀、圓弧等等的描繪(注意如果有興趣,可在Java文檔中找到更詳細的說明)。有些方法允許我們畫出字符,而其中最常用的就是drawString()。對于它,需指出自己想描繪的String(字串),并指定它在程序片作圖區(qū)域的起點。這個位置用像素表示,所以它在不同的機器上看起來是不同的,但至少是可以移植的。<br>
根據這些信息即可創(chuàng)建一個簡單的程序片:<br>
<br>
592頁上程序<br>
<br>
注意這個程序片不需要有一個main()。所有內容都封裝到應用程序框架中;我們將所有啟動代碼都放在init()里。<br>
必須將這個程序放到一個Web頁中才能運行,而只能在支持Java的Web瀏覽器中才能看到此頁。為了將一個程序片置入Web頁,需要在那個Web頁的代碼中設置一個特殊的標記(注釋①),以指示網頁裝載和運行程序片。這就是applet標記,它在Applet1中的樣子如下:<br>
<br>
592頁下程序<br>
<br>
①:本書假定讀者已掌握了HTML的基本知識。這些知識不難學習,有許多書籍和網上資源都可以提供幫助。<br>
<br>
其中,code值指定了.class文件的名字,程序片就駐留在那個文件中。width和height指定這個程序片的初始尺寸(如前所述,以像素為單位)。還可將另一些東西放入applet標記:用于在因特網上尋找其他.class文件的位置(codebase)、對齊和排列信息(align)、使程序片相互間能夠通信的一個特殊標識符(name)以及用于提供程序片能接收的信息的參數。參數采取下述形式:<br>
&lt;Paramname=標識符 value =&quot;信息&quot;&gt;<br>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨porny丨户外露出| 欧美一三区三区四区免费在线看 | 极品少妇xxxx偷拍精品少妇| 国产综合久久久久久久久久久久| 91蜜桃在线观看| 一区二区三区欧美激情| 久久电影网站中文字幕 | 高清在线不卡av| 欧美女孩性生活视频| 国产喷白浆一区二区三区| 亚洲一区二区三区在线看| 国产成人无遮挡在线视频| 91精品国产色综合久久不卡电影| 免费一级片91| 欧美美女激情18p| 亚洲自拍另类综合| 日韩精品中文字幕在线不卡尤物| 亚洲精品ww久久久久久p站| 国v精品久久久网| 亚洲一区二区三区小说| 精品国产成人系列| 日韩高清一级片| 在线观看成人小视频| 亚洲视频 欧洲视频| 高清成人免费视频| 亚洲高清免费一级二级三级| 91久久精品一区二区| 中文字幕一区二区不卡| www.欧美色图| 国产日韩欧美a| 欧美日韩国产a| 豆国产96在线|亚洲| 日韩成人一区二区三区在线观看| 国产日韩综合av| 91精品国产综合久久精品性色| 午夜精品成人在线| 欧美一区二区在线视频| av资源网一区| 国产麻豆视频一区| 国产精品无人区| 91麻豆精品视频| 国内精品嫩模私拍在线| 亚洲mv大片欧洲mv大片精品| 欧美一区二区久久久| 99久久国产综合精品色伊 | 久久久久久久久一| 岛国一区二区三区| 欧美国产一区二区| 91日韩一区二区三区| 国产一区二区久久| 免费成人你懂的| 亚洲h在线观看| 亚洲柠檬福利资源导航| 欧美日本视频在线| 色一情一乱一乱一91av| 日韩成人一区二区| 亚洲gay无套男同| 亚洲黄色av一区| 国产精品三级av| 国产午夜亚洲精品不卡| 在线欧美日韩精品| www.亚洲色图.com| 国产成人在线视频免费播放| 精东粉嫩av免费一区二区三区| 天天色综合成人网| 亚洲成人黄色小说| 天天综合网天天综合色| 天天亚洲美女在线视频| 午夜精品一区二区三区免费视频| 一区二区三区欧美激情| 一区二区三区在线观看视频| 亚洲人成在线播放网站岛国| 综合亚洲深深色噜噜狠狠网站| 国产午夜精品在线观看| 欧美国产日本韩| 国产精品天干天干在观线| 国产日韩一级二级三级| 欧美激情在线一区二区| 中文字幕 久热精品 视频在线 | 国产精品一卡二| 亚洲精选视频免费看| 精品999在线播放| 日韩欧美精品在线| 久久天天做天天爱综合色| 在线免费观看视频一区| 色诱亚洲精品久久久久久| 色婷婷国产精品久久包臀 | 久久99精品视频| 久久激情综合网| 国产精品亚洲专一区二区三区| 国产电影一区在线| 91视频国产观看| 欧洲精品视频在线观看| 精品视频免费在线| gogogo免费视频观看亚洲一| 99精品视频一区| 欧美综合欧美视频| 日韩精品资源二区在线| 国产亚洲女人久久久久毛片| 18成人在线视频| 天天操天天色综合| 国产在线视视频有精品| 99精品热视频| 欧美丰满高潮xxxx喷水动漫| 精品国产区一区| 亚洲同性gay激情无套| 五月激情综合婷婷| 国产成人自拍在线| 欧洲亚洲精品在线| 精品国产凹凸成av人导航| 国产精品国产三级国产普通话蜜臀 | 欧美日韩一级视频| 亚洲精品在线免费播放| 亚洲欧美成aⅴ人在线观看| 青青国产91久久久久久| 成人中文字幕电影| 欧美伦理视频网站| 欧美国产精品v| 亚洲综合久久久| 国产一区欧美日韩| 91激情在线视频| ww亚洲ww在线观看国产| 亚洲综合视频网| 丁香另类激情小说| 欧美一区二区久久| 亚洲靠逼com| 国产在线不卡视频| 欧美日韩一区小说| 国产精品福利一区二区| 蜜桃av一区二区| 免费成人结看片| 色综合av在线| 国产精品免费av| 久久国产精品色| 3atv在线一区二区三区| 最近日韩中文字幕| 国产一区二区福利视频| 欧美一区二区三区在线看| 中文字幕一区二区不卡| 国产精品一区二区久激情瑜伽| 欧美日韩午夜在线| 亚洲男人电影天堂| 国产v综合v亚洲欧| 亚洲精品在线免费观看视频| 青青草国产成人av片免费| 欧美视频中文字幕| 欧美成人一区二区三区在线观看| 国产日韩视频一区二区三区| 免费亚洲电影在线| 欧美猛男gaygay网站| 一区二区三区成人| 91欧美激情一区二区三区成人| 中文字幕免费不卡| 国产精一品亚洲二区在线视频| 欧美一区二区国产| 日韩高清在线观看| 777午夜精品视频在线播放| 夜夜揉揉日日人人青青一国产精品 | 欧美国产在线观看| 美女视频一区二区| 欧美日本一区二区三区四区| 亚洲一区日韩精品中文字幕| 色婷婷精品久久二区二区蜜臂av | 亚洲精品老司机| 色综合天天综合网天天看片| 99精品久久99久久久久| 国产情人综合久久777777| 国产成人av在线影院| 久久久久久久综合日本| 国产sm精品调教视频网站| 欧美激情一区不卡| 99精品在线免费| 日韩一卡二卡三卡| 99麻豆久久久国产精品免费优播| 欧美激情一区二区在线| 国产福利一区二区三区视频在线| 精品国产免费久久| 国产精品影视天天线| 欧美国产日韩在线观看| 91色乱码一区二区三区| 亚洲男人电影天堂| 欧美精品久久久久久久久老牛影院| 日本美女视频一区二区| 欧美精品一区二区在线观看| 国产成人夜色高潮福利影视| 亚洲天堂中文字幕| 欧美午夜一区二区三区| 日韩综合小视频| 99国产精品国产精品毛片| 亚洲精品国产品国语在线app| 欧美性大战久久久| 久久精品国产澳门| 国产精品水嫩水嫩| 欧美在线观看一区| 激情伊人五月天久久综合| 中文字幕中文字幕一区二区| 欧美四级电影网| 国产精品一级二级三级| 亚洲乱码国产乱码精品精的特点| 日韩一二三区视频|