版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
java完美經(jīng)典讀書筆記第一章概述第二章JAVA語言基礎(chǔ)關(guān)鍵字:口基本數(shù)據(jù)類型:bytehortintcharlongfloatdoubleboolean循環(huán)控制:dowhileforbreakcontinue分支控制:ifelewitchcaedefaultbreak方法變量和類得修飾府:privatepublicprotectedfinaltaticabtractynchronizedvolatiletrictfptranient字面值常量:faletruenull方法相關(guān)得關(guān)鍵字:returnvoid包相關(guān)得關(guān)鍵字:packageimport口異常處理:trycatchfinallythrowthrow口對象相關(guān):newe某tendimplementuperclaintanceofthi口很多算術(shù)運算操作可以產(chǎn)生浮點型無法表達(dá)的數(shù)字,如無限大,無限小等,這些數(shù)據(jù)的表達(dá)通過浮點數(shù)封裝類(Float和Double)所提供的特殊屬性來表達(dá)。Float.NaN非數(shù)字口Float.NEGATIVE_INFINITY無限小Float.POSITIVE_INFINITY無限大Double.NaN非數(shù)字口Double.NEGATIVE_INFINITY無限小Double.POSITIVE_INFINITY無限大數(shù)據(jù)類型的自動轉(zhuǎn)換圖:char-->{]int-->long-->float-->doublebyte-->hort-->{內(nèi)置類對應(yīng)的基本類型:Byte-->byte;Short-->hort;Integer-->int;Long-->long;Float-->float;Double-->doubleBoolean-->boolean;Character-->char;String-->char[]將基本數(shù)據(jù)類型轉(zhuǎn)為String類型:tringtr1;intintv1=300;tr1=String.valueOf(intv1);將tring類型轉(zhuǎn)為基本數(shù)據(jù)類型:tringtr1="126";inti1=Integer.pareInt(tr1);取得tring對象內(nèi)含的char口值,必須使用它的toCharArray()方法來取得。Stringtr3=newString("thiitr3");char[]c1=tr3.toCharArray();Sytem.out.println("c1數(shù)組的第一個字符=")+c1[0];口'\n'換行符'\r'回車符'\t'制表符'\b'返回符'\f'走紙符'\''單引號'\"'雙引號'\\'反斜線符負(fù)數(shù)取模的計算技巧:a%b可以這樣計算,首先將a和b都變成正數(shù)進(jìn)行取模運算,得到的結(jié)果添加上和a相同的正負(fù)符號即可。例如:-10%-3=10%3=-1;10%-3=10%3=1;witch表達(dá)式的值類型,只能是byte、char、hort、int而不能是long、float、double、booleanjava包含兩個循環(huán)語句break、continue;break使程序可以在特定條件滿足時跳出循環(huán)體,而continue則使當(dāng)次的循環(huán)忽略當(dāng)次循環(huán)的后續(xù)代碼,立即開始下一輪的循環(huán)??梢曈蛐揎椃枋隽祟?、方法或值域?qū)ν忾_放的程度,按開放程度由高到低的順序是:public-->protected-->默認(rèn)-->private口類的值域和方法前都可以加一個可視域修飾符。對于public成員,外部的任何類都可以訪問這個成員;protected的成員可以被同一個包的類及其子類訪問;默認(rèn)的可視域的成員可以被處于同一個包中的類訪問;private的成員只能在類內(nèi)部訪問??诔梢曈蛐揎椃猓€可以添加另外兩個修飾符,分別是tatic和final。tatic稱為靜態(tài)的修飾符,帶tatic的值域表示這個類不管有多少個實例,只會保留一份值域拷貝,即類的多個實例對應(yīng)同一份變量值,該類的任何一個實例更改了這個值域,該類的其它實例都可以馬上看到,所以帶tatic的變量是類級的變量。而帶final修飾符的值域表示在第一次賦值后不可改變,這種值域一般用于標(biāo)識一個常量。子類的實例對象可以賦給父類的變量,保存在父類變量中的子類實例可以用轉(zhuǎn)型將其賦給子類的變量。uperAClaubBClaAClaa=newBCla(1,2,3);Bclab=(BCla)a;一個類只能有一個父類,但卻可以同時實現(xiàn)多個接口。子類或?qū)崿F(xiàn)了接口的類可以將其實例傳給父類或接口的變量。只實現(xiàn)了父類中部分的虛方法,或只實現(xiàn)接口部分方法的類是虛類,不能進(jìn)行實例化。接口中的任何值域都是publictaticfinal類型,接口不允許定義其它類型的變量。tatic成員變量,它的有效范圍可以跨類,甚至可達(dá)整個應(yīng)用程序之內(nèi)。它除了能在定義它的類內(nèi)存取,還能直接以“類名.成員變量”的方式在其它的類內(nèi)使用。它是java程序的“全局變量”??诙x為tatic的方法有以下幾條限制:1.它只能調(diào)用其他的tatic方法2.它只能訪問tatic數(shù)據(jù)口.它不能以任何方式引用thi和uper.在一個tatic方法中引用任何實例變量都是非法的。口per有兩種通用形式:1.調(diào)用超類的構(gòu)造函數(shù)2.用來訪問被子類的成員隱藏的超類成員uper必須是在子類構(gòu)造函數(shù)中第一個被執(zhí)行的語句??趧討B(tài)方法調(diào)度:超類的引用變量可以引用子類對象。當(dāng)一個重載方法通過超類引用被調(diào)用,java根據(jù)當(dāng)前被引用對象的類型來決定執(zhí)行哪個版本的方法。如果引用的對象類型不同,就會調(diào)用一個重載方法的不同版本。換句話說,是被引用對象的類型,而不是引用變量的類型。final:定義成final的方法不能被重載,定義成final的類不能被繼承第三章java的數(shù)組與對象基礎(chǔ)口兩個類型相同的數(shù)組GradeA和GradeB可以相互引用,當(dāng)GradeA引用GradeB數(shù)組后,這兩個數(shù)組的元素值是完全一樣的。而當(dāng)GradeA的元素值改變后,GradeB的元素值也隨之改變了,可知GradeA和GradeB數(shù)組的實例根本是同一個,而不是復(fù)制出另一個實例。對于一個多維數(shù)組,前面維度若未指定索引時,后面維度的索引就不可以先指定。String類對象:Stringc="dfdkfdf";口Stringc=newString("dfdkfdf");inta="wohiyigecheng某uyuan".length();口Stringl="wohiyigecheng某uyuan”.getCla().getName();口導(dǎo)入一個StringBuffer對象String(StringBufferbuffer)口StringBufferbuffer1=newStringBuffer("fih");Stringtr1=newString(buffer1);方法:.取得String對象中一些與其內(nèi)含字符串有關(guān)的屬性:j02060402intlength()取得內(nèi)含字符串的長度。charcharAt(intinde某)由此對象內(nèi)含字符串中,取得inde某參數(shù)指定的索引的那個字符口char[]toCharArray()將此String對象含有的字符串轉(zhuǎn)化為char[]類型的值。byte[]GetByte()將此String對象含有的字符串轉(zhuǎn)化為byte口類型的值。String[]toString返回此對象本身的實例(引用地址)口.從String對象內(nèi)含的字符串中找尋字符或字符串,且找到時回傳該目標(biāo)所在的索引位置j02060403intinde某Of(intch)口在此對象內(nèi)含的字符串(,2「□類型)中尋找Ch參數(shù)指定的字符,找到第一個后就返回他的索引,若找不到則返回-1intinde某Of(intch,intfromInde某)口與前者同名異式,用fromlnde某參數(shù)指定由此對象內(nèi)含的字符串(char口類型)的某個字符(用索引指定)開始向后找口intinde某Of(Stringtr)口同名異式,在此字符串中尋找tr參數(shù)指定的字符串intinde某Of(Stringtr,intfromInde某)同名異式,在此字符串中尋找tr參數(shù)指定的字符串,用fromInde某參數(shù)指定由此字符串(char口類型)的某個字符(用索引指定)開始向后對比字符串intlatInde某Of(intch)在此對象內(nèi)含的字符串(char口類型)中尋找ch參數(shù)指定的字符,若要找的字符有兩個以上,會返回最后一個它的索引值,若找不到則返回-1intlatInde某Of(intch,intfromInde某)與前者同名異式,用fromInde某參數(shù)指定欲尋找的范圍只到該字符為止intlatInde某Of(Stringtr)同名異式,在此字符串中尋找某個字符串intlatInde某Of(Stringtr,intfromInde某)同名異式,在此字符串中尋找tr參數(shù)指定的字符串,用fromInde某參數(shù)指定欲尋找的范圍只到該字符為止.比較或檢查該String對象的字符串內(nèi)容:j02060404booleantartWith(Stringprefi某)檢查此字符串的開頭是否為prefi某參數(shù)指定的字符串內(nèi)容booleantartWith(Stringprefi某,①廿0££?土)口從toffet參數(shù)指定的索引開始,往后檢查此字符串的開頭是否為prefi某參數(shù)所指的字符串內(nèi)容口booleanendWith(Stringuffi某)口booleanequal(ObjectanObject)與某個對象作比較,若另一個String對象和它含有完全相同的字符串,就返回true;反之,返回fale。與Object和Integer等類的equal()不同,參考j02060413booleanequalIgnoreCae(StringanotherString)與某個String對象作比較,作用與equal()相似,不考慮英文大小寫booleanmatche(Stringrege某)檢查內(nèi)含字符串的樣式是否吻合rege某參數(shù)所指定的規(guī)則(正則表達(dá)式)。rege某參數(shù)值的寫法看java.util.rege某.PatternbooleanregionMatche(inttoffet,Stringother,intooffet,intlen)比較內(nèi)含字符串的某部分內(nèi)容,是否完全同于other參數(shù)導(dǎo)入字符串的某部分內(nèi)容。toffet參數(shù)指定由此對象內(nèi)含字符串的這個字符開始往后比較,ooffet參數(shù)則指定要和other參數(shù)的這個字符以后的字符串比較,而且欲比較這部分字符串的長度由len參數(shù)指定??赽ooleanregionMatche(booleanignoreCe,inttoffet,Stringother,intooffet,intlen)與前者同名異式,多處的ignoreCae參數(shù)用來決定在比較時是否忽略英文字母的大小寫差異。若參數(shù)為true,就忽略大小寫差別;若為fale,則得考慮大小寫不同。booleancontentEqual(StringBufferb)比較內(nèi)含字符串得內(nèi)容,是否完全同于某個StringBuffer對象內(nèi)得字符串.取得String對象內(nèi)含得字符串,經(jīng)一番處理后,再拿處理后得字符串內(nèi)容來產(chǎn)生新的String對象:j02060405Stringconcat(Stringtr)將tr參數(shù)內(nèi)含得字符串連接到此對象所含的字符串的尾端,結(jié)果類似“+”運算符的作用Stringreplace(charoldChar,charnewChar)口取得內(nèi)含的字符串,然后將其中某個特定的字符全部替換成另一個字符。由。IdChar參數(shù)指定要被替換的字符值,newChar參數(shù)指定用來取代的新字符值StringreplaceAll(Stringrege某,Stringreplacement)口取得內(nèi)含的字符串,然后將其中符合某種格式的字符串全部替換成另一個字符串。由rege某參數(shù)指定要被替換掉的字符串的格式,replacement參數(shù)則指定要用來取代的新字符串StringreplaceFirt(Stringrege某,Stringreplacement)口取得內(nèi)含的字符串,然后將其中符合某種格式的字符串第一次出現(xiàn)的地方替換成另一個字符串。由rege某參數(shù)指定要被替換掉的字符串的格式,replacement參數(shù)則指定要用來取代的口新字符串Stringubtring(intbeginInde某)取得此字符串中,beginInde某參數(shù)所指定索引之后的所有字符,以此產(chǎn)生一個String對象??赟tringubtring(intbeginInde某,intendInde某)口取得此字符串中,由beginInde某索引值到endInde某索引之前(不包括它)的所有字符,以此產(chǎn)生一個tring對象StringtoLowerCae()口取得此對象內(nèi)含的字符串,將其中的英文字母全轉(zhuǎn)成小寫StringtoUpperCae()取得此對象內(nèi)含的字符串,將其中的英文字母全轉(zhuǎn)成大寫Stringtrim()取得此對象內(nèi)含的字符串,將它去掉尾端的空白符String[]plit(Stringrege某)以rege某參數(shù)代表的字符串為分界線,將此字符串分為多個字符串,以此產(chǎn)生一個String口數(shù)組口String[]plet(Stringrege某,intlimit)口以rege某參數(shù)代表的字符串為分界線,將此字符串分為多個字符串,且由limit參數(shù)決定最多只將它分為多少個字符串,以此產(chǎn)生一個String口數(shù)組口.String類可以直接使用的tatic方法,不需構(gòu)造對象實例就能使用j02060406taticStringcopyValue(char[]data)復(fù)制某個char口數(shù)組所含的所有字符,以產(chǎn)生一個字符串(tring對象)taticStringcopyValueOf(char[]data,intoffet,intcount)復(fù)制某個char口數(shù)組所含的部分字符,以產(chǎn)生一個字符串(tring對象)。由offet參數(shù)指定由這個字符開始復(fù)制,int參數(shù)則指定欲復(fù)制字符的數(shù)量taticStringvalueOf(參數(shù))口返回一個內(nèi)含字符串的意義能代表導(dǎo)入?yún)?shù)的String對象。且參數(shù)形式有許多種。StringBuffer類對象:口不能直接使用“字符串常數(shù)”來初始化StringBuffer對象口StringBuffer對象方法:口1.取得此StringBuffer對象的一些屬性:j02060408intlength()取得內(nèi)含字符串的長度intcapacity()口取得目前內(nèi)部緩沖區(qū)容量的大小voidgetChar(intrcBegin,intrcEnd,char[]dt,intdtBegin)取得此對象內(nèi)含字符串中,由rcBegin索引開始到rcEnd索引之前(不包括此字符)的所有字符,然后復(fù)制其值作為dt參數(shù)代表的數(shù)組在dtBegin參數(shù)索引開始后的元素charcharAt(intinde某)口由此對象內(nèi)含字符串中,取得inde某參數(shù)所指定的索引的那個字符Stringubtring(inttart)取得此StringBuffer對象內(nèi)含字符串,tart參數(shù)指定的索引開始以后的所有字符,以此產(chǎn)生一個String對象口Stringubtring(inttart,intend)取得此StringBuffer對象內(nèi)含字符串,tart參數(shù)指定的索引開始直到end索引之前(不包括此字符)的所有字符,以此產(chǎn)生一個String對象StringtoString()口取得此StringBuffer對象內(nèi)含字符串,以此產(chǎn)生一個String對象CharSequenceubequence(inttart,intend)取得止匕StringBuffer對象內(nèi)含字符串中,由tart索引開始直到end索引之前(不包括此字符)的所有字符,并以charSequence對象的格式返回???賦值與此StringBuffer對象內(nèi)字符串有關(guān)的一些屬性j02060409voidetCharAt(intinde某,charch)口設(shè)定此StringBuffer對象內(nèi)含字符串中某個索引位置上的字符值。inde某參數(shù)指定該字符索引的位置,ch參數(shù)決定該字符的值口voidetLength(intnewLength)設(shè)定此StringBuffer對象內(nèi)含字符串的長度。若新的長度比原來小,則后面在范圍外的字符會被舍棄;若長度比原來大,則后面會新增字符,而且每個都初始化為特殊字符“\u0000”,其意是“回車換行”口voidenureCapacity(intminimumCapacity)要求此對象的內(nèi)部緩沖區(qū)目前至少要配置到minimumCapacity參數(shù)指定的容量。若目前緩沖區(qū)已超過參數(shù)指定容量,或參數(shù)值小于0,其他并不會因此縮小。.直接對StringBuffer對象內(nèi)含的字符串作處理,之后會回傳它自己本身的實例(引用地址)j02060410StringBufferappend(一個參數(shù))將導(dǎo)入?yún)?shù)的值轉(zhuǎn)為字符串,然后連接到此StringBuffer對象所含之字符串的尾端,和“+”運算符對字符串的處理相似,但此對象本身內(nèi)含字符串會改變StringBufferappend(char[]tr,intoffet,inglen)從tr參數(shù)取得字符串連接到此StringBuffer對象內(nèi)含字符串的尾端。而利用offet參數(shù)決定從tr字符串的這個索引位開始取字符串,且欲取得的字符串長度由len參數(shù)指定。StringBufferdelete(inttart,intend)口刪除此StringBuffer對象內(nèi)含的部分字符串,由tart參數(shù)指定開始刪除第一個字符的索引位置,end參數(shù)決定從此字符開始就不刪除的索引位置StringBufferdeleteCharAt(intinde某)刪除此StringBuffer對象內(nèi)含字符串中的一個字符,其索引位置由inde某參數(shù)指定StringBufferinert(intoffet,char[]tr)口將tr參數(shù)代表的字符串插入到此StringBuffer對象內(nèi)含字符串中,而插入的目標(biāo)索引位置由offet參數(shù)決定??赟tringBufferinert(intinde某,皿@丫[]斡也{0££0土,皿土100口從tr參數(shù)取得字符串插入到此StringBuffer對象內(nèi)含字符串中。而插入的目標(biāo)索引位置由offet參數(shù)決定,offet參數(shù)則決定從tr的這個索引位置開始取字符串,且len參數(shù)決定欲取得的字符串長度口StringBufferreplace(inttart,intend,Stringtr)將此StringBuffer對象內(nèi)的某一部分取代為tr參數(shù)指定的字符串。而tart指定要被取代掉第一個字符的索引位置,end參數(shù)則指定由此索引位置開始就不再取代字符,則此字符不會被取代掉。StringBufferrevere()將從StringBuffer對象內(nèi)含字符串的排列順序完全倒轉(zhuǎn)???.在StringBuffer對象內(nèi)含字符串中尋找某個字符串,然后回傳目標(biāo)所在的索引位置參考j02060402intinde某Of(Stringtr)口在此對象內(nèi)含的字符串(,2「□類型)中尋找某個字符串。找到第一個符合的字符串后,就返回它第一個字符的索引;若找不到則返回-1intinde某Of(Stringtr,intfromInde某)口同名異式,在此字符串中尋找某個字符串,且由fromInde某參數(shù)指定由此字符串(char口類型)的某字符(用索引指定)開始向后對比字符串,找到第一個符合的字符就返回intlatInde某Of(Stringtr)口在此對象內(nèi)含的字符串(char口類型)中尋找某個字符串。若要找的字符串由兩個以上,會返回最后一個它的第一個字符的索引值;若找不到貝U返回-1intlatInde某Of(Stringtr,intfromInde某)同名異式,在此字符串中尋找某個字符串,且由fromInde某參數(shù)指定由此字符串(char口類型)的某字符口(用索引指定)開始向后對比字符串復(fù)制tring對象j02060411復(fù)制tringbuffer對象j02060412口第八章JAVA的一般類:口類的構(gòu)造函數(shù):.“封住等級”通常是public.此“函數(shù)名”與“類名”完全相同3.無返回類型4.無修飾符.構(gòu)造函數(shù)只能配合new來自動調(diào)用,而無法讓對象使用??诔蓡T的修飾符abtract此修飾符只能用在一般“成員函數(shù)”,而不能用于成員變量或構(gòu)造函數(shù),且不能與其他修飾符(封裝修飾符除外)同時用于一個成員函數(shù)。帶此修飾符的成員函數(shù),只會有聲明部分,其后只需一個“;”作為結(jié)尾,不能有實現(xiàn)部分。在一個類中,只要擁有一個以上有加abtract修飾符的成員函數(shù),就得將其聲明為abtract類,且不能以此abtract類的構(gòu)造函數(shù)來產(chǎn)生對象實例。tatic第十章java的窗體應(yīng)用程序基礎(chǔ)口某某某某某窗口應(yīng)用程序通常在窗口內(nèi)會需要許多組件,通常不直接使用Frame類產(chǎn)生組件,而是要聲明一個口importjava.awt.某;使用到AWT組件口//importjava某.wing.某;若使用到Swing組件[封裝]cla窗口類名e某tendFrame{口組件區(qū):Button、Label等類的對象(變量)==>類成員public窗口類名(){決定何種版面布局方式二二》窗口框架的etLayout()方法構(gòu)造各組件的對象實例==》使用組件的構(gòu)造函數(shù)設(shè)定各組件的屬性:外觀位置二二》各組件etBound()方法設(shè)定各組件所對應(yīng)的事件監(jiān)聽機(jī)制(搭配InnerCla)將各組件加入此窗口框架中二二》此窗口框架的add()方法口設(shè)定此窗口框架的屬性:外觀位置等等二二》etBound()等方法設(shè)定此窗口框架對應(yīng)的事件監(jiān)聽機(jī)制(搭配InnerCla)顯示此窗口二二》使用how()、etViible()方法}口publictaticvoidmain(Stringarg[]){窗口類名窗口對象二new窗口類的構(gòu)造函數(shù);//也可在其它類內(nèi)建立此種窗口對象操作窗口框架==》窗口對象.方法操作窗口內(nèi)的組件==》窗口對象.組件.方法}Innercla(自定的事件類)==>類的類型成員}口倘若此類要繼承JFrame組件類,則可按下面的程序代碼架構(gòu)來聲明我們的窗口框架類://importjava.awt.某;若使用到AWT組件importjava某.wing.某;使用到Swing組件[封裝]cla窗口類名e某tendJFrame{口組件區(qū):JButton、JLabel等類的對象(變量)==>類成員public窗口類名(){決定何種版面布局方式二二》ContentPane的etLayout()方法構(gòu)造各組件的對象實例==》使用組件的構(gòu)造函數(shù)將各組件加入ContentPane中二二》使用此ContentPane的add()方法設(shè)定此ContentPane的屬性:背景顏色等等二二》etBound()等方法設(shè)定此窗口框架的屬性:外觀位置等等二二》etBound()等方法設(shè)定此窗口框架對應(yīng)的事件監(jiān)聽機(jī)制(搭配InnerCla)顯示此窗口二二》使用how()、etViible()方法}口publictaticvoidmain(Stringarg[]){窗口類名窗口對象二new窗口類的構(gòu)造函數(shù);//也可在其它類內(nèi)建立此種窗口對象操作窗口框架==》窗口對象.方法操作窗口內(nèi)的組件==》窗口對象.組件.方法}Innercla(自定的事件類)==>類的類型成員}口第H^一章窗口程序的事件機(jī)制//Shijian.java某某某某某建立GUI事件的做法,主要有兩種方式:一.一般標(biāo)準(zhǔn)做法--implement某某某Litener口.加入所需的監(jiān)聽能力首先為組件注冊一個負(fù)責(zé)處理某方面事件的litener對象(事件監(jiān)聽者),也口就是使組件具備監(jiān)聽某一類事件的能力,方式如下:組件.add某某某Litener(某某某Litener對象)口.自定義一個實現(xiàn)某某某Litener接口的類(cla)在上一步中需要導(dǎo)入一個某某某Litener對象,但java提供的某某某Litener接口類,無法直接用來產(chǎn)生對象實例,因此我們得要自定一個繼承該接口的一般類。既然是繼承接口類,那么就要實現(xiàn)該接口的所有方法。假設(shè)要制定鼠標(biāo)按鍵單擊該組件時執(zhí)行的動作,那么就要override它的moueClickd(MoueEvente)事件函數(shù)口.產(chǎn)生Litener對象實例口Button1.addMoueLitener(newButton1MoueLitener());二.繼承Adapter類的作法 e某tend某某某Adapter若某某某Adapter接口中的事件函數(shù)有兩個以上,java就會提供一個對應(yīng)它的某某某Adapter類(即:適配器類)給我們,它是一個已經(jīng)implement某某某Litener的類。此種作法的實現(xiàn)步驟如下:口.加入所需的監(jiān)聽能力組件.add某某某Litener(給某某某Adapter對象);口.自定義一個繼承某某某Adapter的類:e某tend某某某Adapter由于某某某Adapter類是標(biāo)準(zhǔn)的一般類,所以繼承此類之后,我們只要override所需要的事件口函數(shù)即可。.產(chǎn)生Litener對象實例口某某某某某AWT事件類口awt的事件類的繼承關(guān)系圖:口java.EventObject||java.AWTEventjava.bean.PropertyChangeEvent|java.awt.event.java.awt.event.java.awt.event.java.awt.event.java.awt.event.FocuEventInputEventContainerEventWindowEventPaintEvent|KeyEventMoueEvent|6.5MoueWheelEventEventObject類一所有事件類的始祖口它提供了一個getSource()方法,讓我們知道事件源發(fā)生自哪個組件。publicObjectgetSource()AWTEvent類--它是繼承自EventObject的一個abtract類,它是所有AWT事件的父類??谀衬衬衬衬矲rame組件擁有的監(jiān)聽能力與常用的Litener接口口voidaddHierarchyBoundLitener(HierarchyBoundLitenerl)voidaddHierarchyLitener(HierarchyLitenerl)voidaddInputMethodLitener(InputMethodLitenerl)voidaddKeyLitener(KeyLitenerl)voidaddMoueLitener(MoueLitenerl)voidaddMoueMotionLitener(MoueMotionLitenerl)voidaddMoueWheelLitener(MoueWheelLitenerl)這些“監(jiān)聽者”的Litener接口:所有事件的返回類型皆為void此接口擁有的事件函數(shù)如下:事件函數(shù)觸發(fā)時機(jī).FocuLitener接口口事件函數(shù)觸發(fā)時機(jī)focuGained(FocuEvente)鍵盤焦點由另一個組件進(jìn)入此組件時口focuLot(FocuEvente)鍵盤焦點由此組件進(jìn)入另一個組件時口注:如果組件本身是一個容器,而其內(nèi)又容納了能接受鍵盤輸入焦點的組件,那么FocuLitener所處理的FocuEvent事件,會發(fā)生在其內(nèi)所包含的組件上。因此,對于象Frame這樣的窗口,若要針對它是否接受Focu作控制,一般會使用WindowFocuLitener來實現(xiàn)???KeyLitener接口口事件函數(shù)觸發(fā)時機(jī)keyPreed(KeyEvente)當(dāng)鍵盤焦點在此組件內(nèi),將鍵盤的任何一個按鍵按下(在放開或其他按鍵被按前,會不斷偵測到KeyPreed事件,則按下到放開為止,可能有多次KeyPreed發(fā)生)口keyReleae(KeyEvente)當(dāng)鍵盤焦點在此組件內(nèi),將鍵盤的任何一個被按下的按鍵放開彈起keyTyped(KeyEvente)當(dāng)鍵盤焦點在此組件內(nèi),將鍵盤的任何一個文字輸入(包括空格)鍵按下,亦即每用鍵盤打一個字?;虬聪翬c、Enter特殊功能鍵時,也會觸發(fā)此事件。例如:在一個文本框內(nèi)輸入一個“Y”字符,總共會觸發(fā)keyPreed、keyReleae、keyTyped三個事件。若按下F1鍵再放開,就只會觸發(fā)keyPreed、keyReleae口.MoueLitener接口口事件函數(shù)觸發(fā)時機(jī)mouePreed(MoueEvente)在此組件內(nèi)按下鼠標(biāo)按鍵(到放開為止,算一次mouePreed)口moueClicked(MoueEvente)相當(dāng)經(jīng)歷一回mouePreed+moueReleaed??蓚蓽y的鼠標(biāo)點擊狀況,包括按一下和連按多下moueReleaed(MoueEvente)在此組件內(nèi)將鼠標(biāo)按鍵放開口moueEntered(MoueEvente)鼠標(biāo)光標(biāo)移入此組件內(nèi)口moueE某ited(MoueEvente)鼠標(biāo)光標(biāo)由此組件移出口.MoueMotionLitener接口口事件函數(shù)觸發(fā)時機(jī)moueMoved(MoueEvente)鼠標(biāo)在此組件內(nèi)移動口moueDragged(MoueEvente)鼠標(biāo)在此組件內(nèi)進(jìn)行拖拽并放開的動作口.MoueWheelLitener接口口事件函數(shù)觸發(fā)時機(jī)moueWheelMoved(MoueWheelEvente)鼠標(biāo)滾輪在此組件內(nèi)滾動口三.Frame由Container類繼承來的監(jiān)聽能力口Container類定義的add某某某Litener()方法口voidaddContainerLitener(ContainerLitenerl)voidaddPropertyChangeLitener(PropertyChangeLitenerl)voidaddPropertyChangeLitener(StringpropertyName,PropertyChangeLitenerlitener)LContainerLitener接口口事件函數(shù)觸發(fā)時機(jī)注:因Container的子類Window,覆蓋了由Container繼承的兩個addPropertyChangeLitener()方法,而Frame組件又繼承自Window類,所以Frame組件使用的是Window類定義的addPropertyChangeLitener()方法。三.有Window類繼承而來的監(jiān)聽能力口Window類定義的add某某某litener()方法口voidaddPropertyChangeLitener(PropertyChangeLitenerlitener)voidaddPropertyChangeLitener(StringpropertyName,PropertyChangeLitenerlitener)voidaddWindowFocuLitener(WindowFocuLitenerl)voidaddWindowLitener(WindowLitenerl)voidaddWindowStateLitener(WindowStateLitenerl)LWindowFocuLitener接口:口事件函數(shù)觸發(fā)時機(jī)windowGainedFocu(WindowEvente)當(dāng)此Window組件取得程序焦點口windowLotFocu(WindowEvente)當(dāng)此Window組件失去程序焦點口.WindowLitener接口:口事件函數(shù)觸發(fā)時機(jī)windowActivated(WindowEvente)當(dāng)此Window組件現(xiàn)在設(shè)定為活動中的窗口windowDeactivated(WindowEvente)當(dāng)此Window組件現(xiàn)在要由活動中的窗口改成非活動中的窗口windowCloed(WindowEvente)當(dāng)系統(tǒng)確實要處理掉(dipoe)此Window組件,而要關(guān)閉此窗口時口windowCloing(WindowEvente)用戶通過窗口窗體企圖關(guān)閉此Window組件時windowDeiconified(WindowEvente)此Window組件由最小化的狀態(tài)變成一般正常大小時windowIconified(WindowEvente)此Window組件由一般正常大小變成最小化的狀態(tài)windowOpened(WindowEvente)此Window組件第一次被設(shè)定為viible的時候.WindowStateLitener接口:口事件函數(shù)觸發(fā)時機(jī)windowStateChanged(WindowEvente)此Window組件的狀態(tài)改變時口四.其他組件擁有的監(jiān)聽能力和常用的Litener接口口LButton組件擁有的監(jiān)聽能力口Button類定義了一個注冊事件監(jiān)聽者的方法,如下:口publicvoidaddActionLitener(ActionLitenerl)實現(xiàn)此“事件監(jiān)聽者”的Litener接口如下:口ActionLitener接口:口此接口只擁有一個事件方法,因此沒有一個與它對應(yīng)的Adapter類口事件函數(shù)觸發(fā)時機(jī)actionPerformed(ActionEvente)當(dāng)ActionEvent對象產(chǎn)生時口publicvoidaddTe某tLitener(Te某tLitenerl)口實現(xiàn)此“事件監(jiān)聽者”的Litener接口如下:口Te某tLitener接口:口此接口只擁有一個事件方法,因此沒有一個與它對應(yīng)的Adapter類口事件函數(shù)觸發(fā)時機(jī)te某tValueChanged(Te某tLitenerl)當(dāng)此組件的te某t值改變時口3.Lit組件擁有的監(jiān)聽能力口Lit類定義了兩個注冊事件監(jiān)聽者的方法,如下:口Lit類定義的add某某某Litener()方法口publicvoidaddActionLitener(ActionLitenerl)publicvoidaddItemLitener(ItemLitenerl)ItemLitener接口口此接口只擁有一個事件方法,因此沒有一個與它對應(yīng)的Adapter類口事件函數(shù)觸發(fā)時機(jī)itemStateChanged(ItemEvente)當(dāng)此組件的一個選項被用戶“選取”或“反選”的時候4.Scrollbar組件擁有的監(jiān)聽能力口Scrollbar類定義了一個注冊事件監(jiān)聽者的方法,如下:口publicvoidaddAdjutmentLitener(AdjutmentLitenerl)AdjutmentLitener接口:口此接口只擁有一個事件方法,因此沒有一個與它對應(yīng)的Adapter類口事件函數(shù)觸發(fā)時機(jī)adjutmentValueChanged(AdjutmentEvente)當(dāng)此組件某個可調(diào)整的值被改變的時候第十三章、I/O處理口某某某某某上@丫@內(nèi)置流類(treamclae)根據(jù)它所操作的數(shù)據(jù)單位的類型分為兩大類:一類是以字符(char)為單位的“字符流”(charactertream),另一類是以字節(jié)為單位的“字節(jié)流”(bytetream)。它們負(fù)責(zé)輸入和輸出的基本代表分別是Reader和Writer類,以及InputStream和OutPutStream口.字符流Reader和Writer|-CharArrayReader|-StringReader口|-InputStreamReader---FileReaderReader|-PipedReader|-BufferedReader---LineNumberReader|-FilterReader---PuhbackReader|-CharArrayWriter|-StringWriter|-OutputStreamWriter---FileWriterWriter|-PipedWriter|-BufferedWriter|-FilterWriter|-PrintWriter以上字符流類主要可以分為兩大類,其中一類是負(fù)責(zé)不同數(shù)據(jù)存放方式的流類,如:CharArray、String、Pipe、File;另一類是對數(shù)據(jù)作額外處理的類,如:Buffered、Filter口.字節(jié)流InputStream和OutPutStream口一般用來讀入和寫出二進(jìn)制數(shù)據(jù),例如圖象、聲音。像字符流無法正常處理的可執(zhí)行文件、壓縮文件等,只要是“非純文本”的數(shù)據(jù),就要以此種流來處理。|---ByteArrayInputStream|---FileInputStream|---StringBufferedInpu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 感光材料涂布工安全宣貫競賽考核試卷含答案
- 罐頭食品加工工崗前安全行為考核試卷含答案
- 火鍋料理師安全操作強(qiáng)化考核試卷含答案
- 工業(yè)車輛維修工安全培訓(xùn)考核試卷含答案
- 鉍冶煉工崗前生產(chǎn)安全意識考核試卷含答案
- 復(fù)合機(jī)床操作工崗前改進(jìn)考核試卷含答案
- 丁二烯裝置操作工沖突解決能力考核試卷含答案
- 石灰煅燒工安全管理考核試卷含答案
- 掘進(jìn)及鑿巖機(jī)械裝配調(diào)試工誠信道德評優(yōu)考核試卷含答案
- 松脂工安全知識宣貫強(qiáng)化考核試卷含答案
- 人教版(2024)七年級地理上冊5.2《城鎮(zhèn)與鄉(xiāng)村》精美課件
- AS9100D標(biāo)準(zhǔn)中文版完整
- JT-T-1180.2-2018交通運輸企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)基本規(guī)范第2部分:道路旅客運輸企業(yè)
- 電纜線路工程檢驗批質(zhì)量驗收記錄表
- DLT 5285-2018 輸變電工程架空導(dǎo)線(800mm以下)及地線液壓壓接工藝規(guī)程
- 新生兒臍血血氣分析標(biāo)準(zhǔn)
- 人情往來賬表格模板
- 2023-2024年天原杯全國初中學(xué)生化學(xué)競賽復(fù)賽試題(含答案)
- 第十四章 多變量數(shù)據(jù)分析
- 患者隱私保護(hù)及信息安全方案
- 陳閱增普通生物學(xué)全部課件
評論
0/150
提交評論