




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第七章:輸入和輸由流第一節(jié):數(shù)據(jù)流的根本概念1 .在java中,把不同類型的輸入、輸出源抽象為流,其中輸入或輸出的數(shù)據(jù)成為數(shù)據(jù)流,用統(tǒng)一的接口表示.2 .數(shù)據(jù)流是指一組有順序的、有起點和終點的字節(jié)集合.程序從鍵盤接收數(shù)據(jù)或向文件中寫數(shù)據(jù),都可以使用數(shù)據(jù)流來完成.3 .流分為輸入數(shù)據(jù)流和輸出數(shù)據(jù)流.輸入數(shù)據(jù)流只能讀不能寫;而輸出數(shù)據(jù)流只能寫不能讀.從數(shù)據(jù)流中讀取數(shù)據(jù)是,必須有一個數(shù)據(jù)源與該數(shù)據(jù)流相連(FileinputStreamin=newFileInputStream("javatest.txt(實修牝)4 .Java.io包中提供了表示數(shù)據(jù)流的4個根本抽象類(不可以實例化),分別
2、是Inputstream、Outputstream、Reader和Writer.因此涉及數(shù)據(jù)流操作的程序中,幾乎都要使用引入語句:importjava.io.*5 .為了使對象的狀態(tài)能夠方便地永久保存下來,java.io包中又提供了以字節(jié)流為根底的用于對象的永久化保存狀態(tài)的機制,通過實現(xiàn)Objectinput和ObjectOutput接口來完成.6 .輸入數(shù)據(jù)流提供的主要操作方法有:(得到-1,標志數(shù)據(jù)流結(jié)束)intread():從輸入流讀取一個字節(jié)的二進制數(shù)據(jù)intread(byteb):將多個字節(jié)讀到數(shù)組中,填滿整個數(shù)組intread(byteb,intoff,intlen):從輸入流中讀
3、取長度為len的數(shù)據(jù),從數(shù)組b中下標為off的位置開始放置讀入的數(shù)據(jù),讀畢返回讀取的字節(jié)數(shù).7 .voidclose():關(guān)閉數(shù)據(jù)流intavailable():返回目前可以從數(shù)據(jù)流中讀取的字節(jié)數(shù)longskip(longl):跳過數(shù)據(jù)流中指定數(shù)量的字節(jié)不讀取,返回值表示實際跳過的字節(jié)數(shù)8 .如需要反向讀取數(shù)據(jù)流,那么使用回推操作(PushBack)BooleanmarkSupported():用于測試數(shù)據(jù)流是否支持回推操作voidmark(int):用于標記數(shù)據(jù)流的當前位置,并劃出一個緩沖區(qū),其大小至少為指定參數(shù)的大小.voidreset():將輸入流重新定位到對此流最后調(diào)用mark方法時的
4、位置9 .輸出數(shù)據(jù)流提供的主要操作方法有:voidwrite(inti):將字節(jié)i寫入到數(shù)據(jù)流voidwrite(byteb):將數(shù)組b中的全部b.length個字節(jié)寫入數(shù)據(jù)流voidwrite(byteb,intoff,intlen):將數(shù)組b中從下標off開始的len個字節(jié)寫入數(shù)據(jù)流voidclose():當結(jié)束對輸出流的操作是應(yīng)該將其關(guān)閉voidflush():刷新此輸出流并強制寫出所有緩沖的輸出字節(jié)第二節(jié):根本字節(jié)數(shù)據(jù)流類1 .文件數(shù)據(jù)流包才FFileInputStream和FileOutputStream,這兩個類用來進行文件的I/O處理,其數(shù)據(jù)源或數(shù)據(jù)終點都應(yīng)當是文件;不支持方法m
5、ark()和reset().2 .緩沖區(qū)數(shù)據(jù)流有BufferInputStream和BufferOutputStream,它們實在數(shù)據(jù)流上增加了一個緩沖區(qū),都屬于過濾器數(shù)據(jù)流.3 .讀寫數(shù)據(jù)時,數(shù)據(jù)以塊(大小可設(shè)置)為單位先進入緩沖區(qū),其后的讀寫操作作用于緩沖區(qū);采用這個方法可以降低不同硬件設(shè)備之間速度的差異,提升I/O操作的效率.4 .一般在關(guān)閉一個緩沖區(qū)輸出流之前,應(yīng)先使用flush()方法,強制輸出剩余數(shù)據(jù).5 .數(shù)據(jù)數(shù)據(jù)流DataInputStream和DataOutputStream(Data可以是intlongdoubleBooleanstring)DataInputStream中
6、包含方法:intreadInt();BolleanreadBoolean()DataOutputStream中包含方法:voidwriteInt(inta);voidwriteBoolean(booleana)6 .java中對象讀取功能通過java.io包中的ObjectInputStream和ObjectOutputStream類實現(xiàn).7 .讀對象用方法readObject()把數(shù)據(jù)流以O(shè)bject類型返回,返回內(nèi)容應(yīng)該在轉(zhuǎn)換為正確的類型之后再執(zhí)行該類的方法:Datad=null;ObjectInputStreams=newObjectInputStream(data.txt);d=(Da
7、ta)s.readObject(d);/要轉(zhuǎn)為正確的類型Data8 .能夠記錄自己的狀態(tài)一遍將來得到復(fù)原的水平,成為對象的持久性.9 .把對象轉(zhuǎn)換為字節(jié)序列的過程稱為對象的序列化,把字節(jié)序列轉(zhuǎn)化為對象稱為反序列化.10 .如果變量是另一個對象的引用,那么引用的對象也要序列化.這個過程是遞歸的,保存的結(jié)果可以看做是一個對象網(wǎng).11 .Serializable接口中沒有定義任何方法,只是作為一個標記來指示實現(xiàn)該接口的類可以進行序列化,而沒有實現(xiàn)該接口的類的對象不能長期保存其狀態(tài).12 .只有實現(xiàn)Serializable接口的類才能被序列化.13 .要序列化一個對象,必須與特定的對象輸入/輸出流聯(lián)系
8、起來;該功能通過ObjectInputStream和ObjectOutputStream類實現(xiàn).14 .序列化只能保存對象的非靜態(tài)成員變量,而不能保存任何成員方法和靜態(tài)成員變量,并且保存的只是變量的值,對于變量的任何修飾符都不能保存,訪問權(quán)限對于數(shù)據(jù)域的序列化沒有影響.15 .Thread對象或流對象,對于這樣的成員變量,必須用transient關(guān)鍵字標明,否那么編譯器將報錯,任何用transient關(guān)鍵字標明的成員變量都不會被保存.16 .如果一個對象結(jié)構(gòu)表中包含了一個對不可持久化對象的引用,而這個引用已用關(guān)鍵字transient加以標記,那么這個對象仍可以被持久化第三節(jié):根本字符流1. j
9、ava.io包中有專門用于字符流處理的抽象類Reader和Writer,它們只提供了一系列用于字符流處理的接口;它們的方法和Inputstream和Outputstream類類似.2. InputStreamReader和OutputStreamWriter類是字節(jié)流和讀者、寫者的接口,用來在字節(jié)流和字符流之間作為中介,其構(gòu)造方法如下:InputStreamReader(InputStreamin):默認標準InputStreamReader(InputStreamin,Stringenc):指定標準enc(如Unicode、8859_1)OutputStreamWriter(OutputSt
10、reamout):默認標準OutputStreamWriter(OutputStreamoutStringenc):指定標準enc(如Unicode、8859_1)3. 在進行java字符與其他平臺轉(zhuǎn)換時如果不進行特定聲明,單純構(gòu)造一個讀者或?qū)懻哌B接到一個數(shù)據(jù)流,那么將字節(jié)碼作為默認情況和Unicode進行轉(zhuǎn)換.4. java,io包中提供了緩沖流BufferReader和BufferWriter;其構(gòu)造方法與BufferInputStream和BufferOutputStream類似;除了read()和write()方法外,還提供了整行字符處理方法:publicStringreadLine(
11、):從輸入流中讀取一行字符,行結(jié)束標志為n;f'或兩者一起publicvoidnewline():向輸出流中寫入一個行結(jié)束標志5. 把BufferReader或BufferWriter正確連接到InputStreamReader或OutputStreamWriter的末尾需要在BufferWriter中使用flush()方法,以強制清空緩沖區(qū)內(nèi)容,預(yù)防遺漏.第四節(jié):文件處理1 .java.io包中提供了File類,用于處理與文件相關(guān)的操作;File對象可以用來生成與文件(及其所在的路徑)或目錄結(jié)構(gòu)相關(guān)的對象2 .創(chuàng)立新的File對象可以用的一下三種構(gòu)造方法:第一種方法:Filemyfi
12、le;myfile=newFile("java.txt適合麻用程序只用到一個文件時第二種方法:myfile=newFile(廣,“java.txt適合應(yīng)用程序只用到多個文件時第一種方法:Filemydir=newFile("/");myfile=newFile(mydir,"javaiXt臺應(yīng)用程序只用到多個文件時3 .與文件名相關(guān)的方法:StringgetName():獲取文件名StringgetPath():獲取文件路徑StringgetAbsolutePath():獲取文件絕對路徑StringgetParent():獲取文件父目錄名稱boolean
13、renameTo(FilenewName):更改文件名,成功返回true否那么返回false4 .文件測定方法booleanexists():文件對象是否存在booleancanWriter():文件對象是否可寫booleancanReader():文件對象是否可讀booleanisFile():文件對象是否是文件booleanisDiretory():文件對象是否是目錄booleanisAbsolute():文件對象是絕對路徑5 .常用文件信息和方法longlastModified():獲取文件最后修改時間longlength():獲取文件長度booleandelete():刪除文件對象指向
14、的文件,成功返回true,否那么返回false6 .目錄工具booleanmkdir():創(chuàng)立新目錄booleanmkdirs():創(chuàng)立新目錄(可以一次生成多個層次的子目錄)String口list():列出符合模式的文件名7 .java提供了RandomAccessFile類來處理隨機訪問文件的輸入/輸出.8 .創(chuàng)立一個隨機訪問文件的方法:mode是指(只讀r或者讀寫rw)使用文件名:myrafile=newRandomAccessFile(Stringname,Stringmode);使用文件對象:myrafile=newRandomAccessFile(Filefile,Stringmod
15、e);9 .java語言提供了移動文件讀寫指針的幾個方法longgetFilePointer():返回文件指針當前位置voidseek(longpos):將文件指針置于指定的絕對位置,位置值以從文件開始處的字節(jié)偏移量pos來計算,pos為0代表文件的開始longlength():返回文件的長度位置值為length()代表文件的結(jié)尾10 .如果文件的讀寫指針已經(jīng)移至文件的末尾,假設(shè)在這之后使用任何流的write()方法,那么所寫入的信息都將添加到原文件之后第八章:圖形界面設(shè)計第一節(jié):AWT與Swing1 .設(shè)計圖形用戶界面時一般有三個步驟,分別是選取組件、設(shè)計布局及響應(yīng)事件.2 .Swing組件
16、與AWT組件最大的不同是Swing組件在實現(xiàn)時不包含任何本地代碼,因此Swing組件可以不受硬件平臺的限制,而具有更多的功能.3 .基于AWT的界面可能會因運行平臺的不同略有差異,而基于Swing的界面在任何平臺上顯示效果都是一致的.4 .不包含本地代碼的Swing組件被稱為"輕量級"組件,而包含本地代碼的AWT組件被稱為重量級組件.當“重量級組件與“輕量級組件一同使用時,如果組件區(qū)域有重疊,那么重量級組件總是顯示在上面.5 .Swing組件比AWT組件擁有更多的功能,在Java2平臺上推薦使用Swing組件.第二節(jié):容器1. 組件可以分為容器組件和非容器組件.2. 容器組
17、件是指可以包含其他組件的組件,又分為頂層容器和一般用途容器.而非容器組件必須包含在容器中.3. 顯示在屏幕上的所有組件都必須包含在某個容器中,有些容器可以嵌套,在這個嵌套的層次的最外層,必須是一個頂層容器.還有一些容器不能當做頂層容器的,例如,JPanel面板和JscrollPane滾動面板.4. Java為所有容器類定義了父類Container,容器的共有操彳都定義在Container類中.5. Swing中的4種頂層容器,分別是JFrame、JApplet、JDialog和JWindow6. JFrame是一個帶有標題行和限制按鈕(最小化、恢復(fù)/最大化、關(guān)閉)的獨立窗口,有時稱為框架,創(chuàng)立
18、應(yīng)用程序時需要使用JFrame.創(chuàng)立小程序時使用JApplet,它被包含在瀏覽器窗口中.創(chuàng)立對話窗口時使用JDialog.JWindow是一個不帶標題行和限制按鈕的窗口,通常很少使用.7. JFrame類常用的構(gòu)造方法:JFrame():構(gòu)造一個初始時不可見、無標題的新框架窗體JFrame(String標題):創(chuàng)立一個初始時不可見、具有指定標題的新框架窗體8. JFrame定義和繼承的方法:voidsetVounds(intx,inty,int寬,int高):移動并調(diào)整框架大小.左上角位置的橫縱坐標分另1J由x和y指定,框架寬高分別由寬和高指定voidsetSize(int寬,int高):設(shè)置
19、框架的大小voidsetBackground(Color.red):使用顏色red(可選)設(shè)置框架的背景色voidsetVisible(Booleantrue/false):設(shè)置框架可見或不可見voidpack():調(diào)整框架的大小,以適合其子組件的首選大小和布局voidsetTiele(String標題):設(shè)置框架的標題(String類型)voidsetLayout(LayoutManagermanager):設(shè)置布局治理器ContainergetContainerPane():返回此框架窗體的內(nèi)容窗格對象9. 4個頂層容器中每一個都有一個內(nèi)容窗格.除菜單之外,頂層容器中的組件都放在這個內(nèi)容窗
20、格中.10. 有兩種方法可以將組件放入內(nèi)容窗格中:第一種方法:通過頂層容器個getContentPane()方法獲得其默認的內(nèi)容窗格.getContentPane()方法的返回類型為java.awt.Container,它仍然是一個容器.然后將組件添加到內(nèi)容窗格中.ContainercontentPane=frame.getContentPane();contentPane.add(button,BorderLayout.CENTER);第二種方法:創(chuàng)立一個新的內(nèi)容窗格,以取代頂層容器默認的內(nèi)容窗格.通常的做法是創(chuàng)立一個Jpanel的實例,它是java.awt.Container的子類.然后將
21、組件添加到Jpanel實例中,在通過頂層容器的setContentPane()方法將Jpanel實例設(shè)置為新的內(nèi)容窗格.JPanelcontentPane=newJPanel();創(chuàng)立JPanel實例contentPane.setLayout(newBorderLayout();創(chuàng)立布局治理器contentPane.add(button,BorderLayout.CENTER);添加組件framer.setContentPane(contentPane);添加內(nèi)容窗格11. 普通面板(Jpanel)和滾動面板(JScrollPane)都是用途廣泛的容器.與頂層容器不同,面板不能獨立存在,必須被
22、添加到其他容器內(nèi)部.面板可以嵌套.12. 當組件過多而不能再顯示區(qū)域內(nèi)全部顯示時,滾動面板可以讓容器帶滾動條,從而顯示出全部的組件.13. JPanel類常用的構(gòu)造方法:JPanel():創(chuàng)立具有FlowLayout布局的新面板JPanel(LayoutManagermanager):創(chuàng)立具有指定布局治理器的新面板使用publicComponentadd(Componentcomp):方法可以將指定組件追加到面板中14. JScrollPane是帶有滾動條的面板,它是Container類的子類.但只能添加一個組件.所以當有多個組件需要添加時,一般先將多個組件添加到JPanel中,然后再講這個J
23、Panel添加到JScrollPane中.第三節(jié):標簽及按鈕1 .標簽(JLable)對象是簡單的的Swing組件,通常用于顯示提示性的文本信息或圖標,不可被編輯.2 .標簽(JLable)的構(gòu)造方法的6種形式:JLable():創(chuàng)立一個不顯示文本信息和圖標的空標簽JLable(Iconimage):創(chuàng)立一個顯示圖標的標簽JLable(Stringtext):創(chuàng)立一個顯示文本信息的標簽JLable(Iconimage,inthorizontalAlignment):創(chuàng)立一個顯示圖標的標簽,水平對齊方式由int型參數(shù)horizontalAlignment指定JLable(Stringtext,i
24、nthorizontalAlignment):創(chuàng)立一個顯示文本信息的標簽,水平對齊方式由int型參數(shù)horizontalAlignment指定JLable(Stringtext,Iconimage,inthorizontalAlignment):創(chuàng)立一個同時顯示圖標和文本信息的標簽,水平對齊方式由int型參數(shù)horizontalAlignment指定horizontalAlignment可選的參數(shù)是:JLable.LEFT(左對齊),JLable.RIGHT(右對齊)和JLable.CENTER(居中對齊)3 .修改標簽上的圖標的方法:voidsetIcon(Iconicon)修改標簽上的文本
25、信息的方法:voidsetText(Stringtext)4 .按鈕(JButton)是Java圖形用戶界面的根本組件之一5 .經(jīng)常用到的4種形式:JButton(普通按鈕卜JToggleButton(切換按鈕卜JChekBox(復(fù)選按鈕)和JRadioButton(單項選擇按鈕),它們均是AbstractButton的子類或間接子類.6 .各種按鈕都可以設(shè)置文本、設(shè)置圖標、注冊事件監(jiān)聽程序.7 .在AbstractButton中定義了按鈕所共有的一些方法,例如:addActionListener()、setEnabled()、setText()和setIcon()等8 .JButton最簡單
26、的按鈕常用的構(gòu)造方法:JButton():創(chuàng)立一個沒有文本信息和圖標的按鈕JButton(Iconicon):創(chuàng)立一個顯示有圖標但沒有文本信息的按鈕JButton(Stringtext):創(chuàng)立一個顯示文本信息但沒有圖標的按鈕JButton(Stringtext,Iconimage):創(chuàng)立一個有顯示圖標和文本信息的按鈕9 .JToggleButton具有兩種狀態(tài)的按鈕,即選中狀態(tài)和未選中狀態(tài),默認未選中狀態(tài).10 .JToggleButton切換按鈕常用的構(gòu)造方法:JToggleButton():創(chuàng)立一個沒有文本信息和圖標的切換按鈕JToggleButton(Iconimage,booleans
27、elected):創(chuàng)立一個顯示圖標和指定初始狀態(tài)但沒有文本信息的切換按鈕JToggleButton(Iconicon):創(chuàng)立一個顯示有圖標但沒有文本信息的切換按鈕JToggleButton(Stringtext):創(chuàng)立一個顯示文本信息但沒有圖標的切換按鈕JToggleButton(Stringtext,Iconimage):創(chuàng)立一個有顯示圖標和文本信息的切換按鈕JToggleButton(Stringtext,booleanselected):創(chuàng)立一個顯示文本信息和指定初始狀態(tài)但沒有圖標的切換按鈕JToggleButton(Stringtext,Iconimage,booleanselecte
28、d):創(chuàng)立個有顯示圖標和文本信息和指定初始狀態(tài)的切換按鈕11 .JCheckBox(復(fù)選按鈕)和JRadioButton(單項選擇按鈕)都是JToggleButton(切換按鈕)的子類,構(gòu)造方法與JToggleButton相同,它們也具有選中和未選中狀態(tài),默認未選中狀態(tài).12 .在JToggleButton類中定義了一個isSelected()方法,通過該方法可以獲知按鈕的當前狀態(tài);當返回值為true時表示選中狀態(tài),而返回值為false時表示未選中狀態(tài).第四節(jié):布局治理器1 .容器中包含了組件.組件的的布局,包括各組件的位置和大小,通常由布局治理器負責安排.2 .每個容器,例如JPanel或者
29、頂層容器的內(nèi)容窗格,都有一個默認的布局治理器,可以通過容器的setLayout()方法改變?nèi)萜鞯牟季种卫砥?3 .FlowLayout定義在java.awt包中,這個布局治理器對容器中組件進行布局的方式是將組件逐個的放置在容器的一行上,一行放滿后就另起一個新行.4 .FlowLayout布局治理器的三種構(gòu)造方法:FlowLayout():創(chuàng)立一個默認的FlowLayout布局治理器,居中對齊,默認的水平和垂直間距是5個像素FlowLayout(intalign):創(chuàng)立一個默認的FlowLayout布局治理器,對齊方式是指定的,默認的水平和垂直間距是5個像素FlowLayout(intalign
30、,int水平間距,int垂直間距):創(chuàng)立一個,默認的FlowLayout布局管理器,對齊方式是指定的以及指定水平和垂直間距align的可取值有FlowLayout.LEFT、FlowLayout.RIGHT和FlowLayout.CENTER三種方式.5 .與其他布局治理器不同的是,FlowLayout布局治理器并不強行設(shè)定組件的大小,而是允許組件擁有它們自己希望的尺寸.每一組件都有一個getPreferredSize()方法,容器的布局治理器會調(diào)用這一方法取得每一組件希望的大小.6 .BorderLayout是頂層容器中內(nèi)容窗格的默認布局治理器,它提供了一種較為復(fù)雜的組件布局方案.每個由Bo
31、rderLayout治理的容器被劃分為5個區(qū)域,分別代表容器的上部(North)、下部(South)、左部(West)、右部(East)和中部(Center)分別使用常量BorderLayout.NORTH、BorderLayout.SOUTH、BorderLayout.WEST、BorderLayout.EAST和BorderLayout.CENTER來表示.在容器的每個區(qū)域,可以參加一個組件.7 .BorderLayout定義在java.awt包中,其構(gòu)造方法有兩種:BorderLayout():構(gòu)造一個組件之間沒有間距的新的BorderLayout布局治理器BorderLayout(in
32、t水平間距,int垂直間距):用指定的組件之間的水平和垂直間距構(gòu)造一個BorderLayout布局治理器8 .在BorderLayout布局治理器下組件必須通過add()方法參加到容器的指定區(qū)域.9 .如果在add()方法中沒有指定將組件放到哪個區(qū)域,那么默認地會被放置在Center區(qū)域10 .在容器的每一個區(qū)域內(nèi),只能參加一個組件,如果試圖向某個區(qū)域參加多個組件,那么只有最后一個是有效的.11 .GridLayout是一個網(wǎng)格式的布局治理器,它將容器空間劃分成假設(shè)干行乘假設(shè)干行的網(wǎng)格,組件依次放入其中,每個組件占據(jù)一格.12 .GridLayout定義在java.awt包中,有3中構(gòu)造方法:
33、GridLayout():創(chuàng)立一個只有一行的網(wǎng)格,網(wǎng)格的列數(shù)根據(jù)實際需要而定GridLayout(int行數(shù),int列數(shù)):創(chuàng)立具有指定行數(shù)和列數(shù)的網(wǎng)格布局GridLayout(int行數(shù),int列數(shù),int水平間距,int垂直間距):創(chuàng)立具有指定行數(shù)和列數(shù)且具有水平間距和垂直間距的網(wǎng)格布局構(gòu)造方法中,行數(shù)和列數(shù)中的一個值可以為0,但是不能兩個都是0,如果行數(shù)為0,那么行數(shù)會根據(jù)實際需要而定,反之亦然.13 .網(wǎng)格每列的寬度都是相同的,網(wǎng)格每行的高度也是相同的.14 .組件被放入容器的次序決定了它所占據(jù)的位置.每行網(wǎng)格從左至右依次填充,一行用完之后轉(zhuǎn)入下一行.15 .BridLayout與Bo
34、rderLayout布局治理器類似,當容器的大小改變時,GridLayout所管理的組件的相對位置不會發(fā)生變化,但組件的大小會隨之改變.16 .CardLayout定義在java.awt包中的布局治理器,這是一種卡片式的布局治理器,它將容器中的組件處理為一系列卡片,每一時刻只顯示出其中的一張,而容器充當卡片的容器.17 .當容器第一次顯示時,第一個添加到CardLayout對象的組件為可見組件.18 .卡片的順序由組件對象本身在容器內(nèi)部的順序決定的.19 .CardLayout的兩種構(gòu)構(gòu)造方法:CardLayout():創(chuàng)立一個默認的無間距的新的CardLayout布局治理器.CardLayo
35、ut(int水平間距,int垂直間距):創(chuàng)立一個具有指定的水平和垂直間距的新的CardLayout布局治理器.20 .除了可以使用add()方法將組件參加容器外,CardLayout還有以下一些常用方法:publicvoidfirst(Containerparent):翻到容器的第一張卡片publicvoidnext(Containerparent):翻到指定容器的下一張卡片.如果當前的可見卡片是最后一張,那么此方法翻轉(zhuǎn)到布局的第一張卡片.publicvoidprevious(Containerparent):翻到指定容器的前一張卡片.如果當前的可見卡片是第一張,那么此方法翻轉(zhuǎn)到布局的最后一張
36、卡片.publicvoidlast(Containerparent):翻到容器的最后一張卡片publicvoidshow(Containerparent,Stringname):翻轉(zhuǎn)至U已添力口至U此布局的具有指定那么的卡片.如果不存在這樣的卡片,那么不發(fā)生任何操作.21 .BoxLayout是定義在javax.swing包中的另一種常用布局治理器,它將容器中的組件按水平方向排成一行或按垂直方向排成一列.當組件排成一行時,每個組件可以有不同的寬度,當組件排成一列時,每個組件可以有不同的高度.第五節(jié):事件處理1 .在java程序運行時,用戶在程序界面所進行的操作稱為用戶事件.對事件的響應(yīng)稱為事件
37、處理.2 .java中,為了便于治理,系統(tǒng)將事件分類,稱為事件類型.系統(tǒng)為每個事件類型提供一個偵聽程序接口,它規(guī)定了接收并處理該類事件的方法的標準.3 .為了接收處理某類用戶事件,組件必須注冊相應(yīng)的事件處理程序,這種事件處理程序稱為事件偵聽程序(Listener,也稱偵聽器),它是實現(xiàn)了對應(yīng)偵聽程序接口的一個類.要作為偵聽程序?qū)ο蟮念惐仨殞崿F(xiàn)相應(yīng)的接口,并實現(xiàn)接口中規(guī)定的響應(yīng)事件的方法.4 .事件被直接送往產(chǎn)生這個事件的組件,組件需要注冊一個或多個偵聽程序.偵聽程序的類中包含了事件處理程序,用來接收和處理這個事件.這種處理事件的機制稱為委托事件處理模型.5 .事件處理的步驟如下:第一:程序中弓
38、I入java.awt.even包.importjava.awt.even;第二:給所需的事件源對象注冊事件偵聽程序.事件源對象.addXXXListener(XXXListener);第三:實現(xiàn)相應(yīng)的方法.假設(shè)某個偵聽程序接口包含多個方法,那么需要實現(xiàn)所有方法.6 .在適配器類中實現(xiàn)了相應(yīng)接口中的全部方法,只是方法的內(nèi)容為空.第六節(jié):繪圖根底1 .可以使用java.awt包中的Color類來定義和治理顏色.Color類的每個對象表示一種顏色.2 .可以有兩種方法生成顏色:第一種:使用Java的Color類中預(yù)定義的顏色第二種:通過紅、綠、藍三原色的值來組合ColormyColor=newCol
39、or(r,g,b);r、g、b取值0-2553 .可以使用下面兩個定義在JComponent中的方法設(shè)置組件前景色和背景色:publicvoidsetForeground(Colorc):設(shè)置前景色publicvoidsetBackground(Colorc):設(shè)置背景色4 .顯示文字的方法主要有以下3種:publicvoiddrawChars(chardata,intoffset,intlength,intx,inty):使用止匕圖形上下文的當前字體和顏色顯示字符數(shù)組data中從0ffset位置開始、最多l(xiāng)ength個字符.首字符的基線位于此圖形上下文坐標系統(tǒng)的(x,y)處.publicvo
40、iddrawstring(Stringstr,intx,inty):在指定位置顯示字符串strpublicvoiddrawBytes(bytedata,intoffset,intlength,intx,inty):使用此圖形上下文的當前字體和顏色顯示由指定的byte數(shù)組data中從0ffset位置開始、最多l(xiāng)ength個字符.首字符的基線位于此圖形上下文坐標系統(tǒng)的(x,y)處.5 .文字字形有字體、樣式及字號3個要素6 .創(chuàng)立Font的構(gòu)造方法:Font(String字體名稱,int字體本式,int字號)順序不能變7 .Font類中常用的方法:setFont(Fontf):對組件中文本字體進行
41、設(shè)定,這個方法需要java.awt.Font類的一個實例做參數(shù)StringgetName():返回Font的邏輯名稱,即字體名稱intgetSize():返回此Font的字號大小,舍入為整intgetStyle():返回此Font的樣式BooleanisBold():測試此Font對象的樣式是否為BOLDBooleanisItalic():測試此Font對象的樣式是否為ITALICBooleanisPl1in():測試此Font對象的樣式是否為PLAIN8 .Graphics類是所有圖形上下文的抽象父類,允許應(yīng)用程序在組件以及屏幕圖像上進行繪制.9 .繪圖模式主要分為兩種,分別是正常模式和異或
42、模式.10 .Graphic2D擁有更強大的二維圖形處理水平,提供對幾何形狀、坐標轉(zhuǎn)換、顏色治理以及文字布局等更復(fù)雜的限制.11 .Graphic2D有以下一些屬性:stroke屬性限制線的寬度paint屬性限制填充效果transform屬性限制圖形平移、縮放和斜切等變換操作12 .使用Graphic2D類的新方法畫一個圖形的步驟通常是:第一:先在重畫方法painComponent()或pain()中,把參數(shù)對象g強制轉(zhuǎn)換為Graphic2D對象第二:用上述圖形類提供的靜態(tài)方法Double()創(chuàng)立該圖形的對象.第三:以圖形對象為參數(shù)調(diào)用Graphic2D對象的draw()方法繪制這個圖形.第九
43、章:Swing組件第一節(jié):組合框與列表1 .組合框(JComboBox)是一個下拉式菜單,它有兩種形式:不可被編輯和可編輯的.2 .JComboBox常用的構(gòu)造方法:JComboBox():創(chuàng)立一個沒有任何可選項的默認組合框JComboBox(Objectitems):根據(jù)Object數(shù)組創(chuàng)立組合框,Object數(shù)組的元素即為組合框中的可選項.3 .JComboBox類中定義的相關(guān)方法:voidaddItem(ObjectanObject):在末尾添加新的可選項ObjectgetItemAt(intindex):返回指定索引序號index處的可選項intgetItemCount():返回列表中
44、的項數(shù)voidinsertItemAt(ObjectanObject,intindex):在index指定的位置添加新的可選項anObjectintgetSelectedIndex():返回列表中與給定項匹配的第一個選項的索引序號ObjectgetSelectedItem():返回當前所選項voidremoveAllItems():刪除所有可選項voidremoveItem(ObjectanObject):刪除由對象anObject指定的可選項voidremoveItemAt(intanIndex):刪除由anIndex指定處的可選項4 .在組合框?qū)ο髣?chuàng)立之后,默認是不可編輯的,可以通過set
45、Editable(true)方法將其設(shè)置為可編輯的.5 .列表(JList)是可供用戶進行選擇的一系列可選項.6 .列表(JList)常用的構(gòu)造方法如下:JList():構(gòu)造一個空列表JList(ObjectlistData):構(gòu)造一個列表,列表的可選項由對象數(shù)組listData指定JList(Vector<?>listData):構(gòu)造一個列表,使其顯示指定Vector中的元素7 .列表(JList)類中定義了相關(guān)的方法,常用的方法有:publicintgetSelectedIndex():返回所選項第一次出現(xiàn)的所有;如果沒有所選項那么返回-1publicObjectgetSele
46、ctedValue():返回所選的第一個值,如果選擇為空,那么返回nullpublicvoidsetVisibleRowCount(intvisibleRowCount):設(shè)置不適用滾動條可以在列表中顯示的首選行數(shù)第二節(jié):文本組件1 .文本組件可用于顯示信息和提供用戶輸入功能,在Swing中提供了文本域(JTextField)、口令輸入域(JPasswordField)、文本區(qū)(JTextArea)等多個文本組件,這些文本組件都有一個共同的父類JTextComponent2 .在JTextComponent中定義了文本組件所共有的一些方法:StringgetSelectedText():從文本
47、組件中提取被選中的文本內(nèi)容StringgetText(intoffs,intlen):從文本組件中提取范圍的文本內(nèi)容voidselect(intstart,intend):在文本組件中選中指定的起始和結(jié)束位置之間的內(nèi)容voidselectAll():在文本組件中選中所有文本內(nèi)容voidserEditable(booleanb):設(shè)置為可編輯或不可編輯狀態(tài)voidsetText(Stringt):設(shè)置文本組件中的文本內(nèi)容voidsetDocument(Documentdoc):設(shè)置文本組件的文檔voidcopy():復(fù)制選中的文本到剪貼板voidcut():剪切選中的文本到剪貼板3 .文本域(J
48、TextField)是一個單行的文本輸入框,可用于輸入少量文本4 .文本域(JTextField)常用的構(gòu)造方法如下:JTextField():構(gòu)造一個空文本域JTextField(intcolumns):構(gòu)造一個具有指定列數(shù)的空文本域,int型參數(shù)columns指定文本域列數(shù)JTextField(Stringtext):構(gòu)造一個顯示指定初始字符串的文本域,String型參數(shù)text指定要顯示的初始字符串JTextField(Stringtext,intcolumns):構(gòu)造一個具有指定列數(shù)并顯示指定初始字符串的文本域,String型參數(shù)text指定要顯示的初始字符串,int型參數(shù)column
49、s指定文本域的列數(shù)5 .文本域(JTextField)常用的方法:voidaddActionListener(ActionListenerl):添加指定的操作偵聽器,接收操作事件voidremoveActionLisener(ActionListenerl):移除指定的操作偵聽器,不再接收操作事件voidsetFont(Fontf):設(shè)置當前字體voidsetHorizontalAlignment(intalignment):設(shè)置文本的水平對齊方式.有效值包括JTextField.LEFT、JTextField.CENTER、JTextField.RIGHT、JTextField.LEADIN
50、G和JTextField.TRAILINGintgetColumns():返回文本域的列數(shù)6 .可以用setEditable(boolean)方法將文本域設(shè)定為可編輯或不可編輯狀態(tài)7 .文本區(qū)(JTextArea)是一個多行多列的文本輸入框.8 .文本區(qū)(JTextArea)常用的構(gòu)造方法如下:JTextArea():構(gòu)造一個空文本區(qū)JTextArea(Stringtext):構(gòu)造一個顯示指定初始字符串的文本區(qū),String型參數(shù)text指定要顯示的初始字符串JTextArea(introws,intcolumns):構(gòu)造一個具有指定行數(shù)和列數(shù)的空文本區(qū),int型參數(shù)rows和columns分
51、別指定文本區(qū)的行數(shù)和列數(shù)JTextArea(Stringtext,introws,intcolumns):構(gòu)造一個而具有指定行數(shù)和列數(shù)并顯示指定初始字符串的文本區(qū),String型參數(shù)text指定要顯示的初始字符串,int型參數(shù)rows和columns指定文本區(qū)的行數(shù)和列數(shù)9 .文本區(qū)(JTextArea)常用的方法:voidappend(Stringstr):將指定的文本str追加到文本區(qū)voidinsert(Stringstr,intpos):將指定文本str插入到文本區(qū)的特定位置pos處voidreplaceRange(Stringstr,intstart,intend):用指定文本str
52、替換文本區(qū)中從起始位置start到結(jié)尾位置end的內(nèi)容第三節(jié):菜單組件1 .菜單也是最常用的GUI組件之一,Swing包中提供了多種菜單組件,包括菜單欄(JMenuBar)、菜單項(JMenuItem)、JMenu、復(fù)選菜單項(JCheckBoxMenuItem)、單項選擇菜單項(JRadioButtonMenuItem)和彈出菜單(JPopupMenu)等.2 .菜單有下拉式菜單和彈出式菜單兩種.3 .菜單欄(JMenuBar)是窗口中的主菜單,用來包容一組菜單.4 .菜單欄(JMenuBar)只有一種構(gòu)造方法,即JMenuBar()5 .如果將整個菜單系統(tǒng)看做是一棵樹,那么菜單項(JMen
53、uItem)就是這棵樹的葉子,是菜單系統(tǒng)的最下面.6 .菜單項(JMenuItem)常用的構(gòu)造方法如下:JMenuItem():創(chuàng)立不帶有設(shè)置文本或圖標的菜單項JMenuItem(Iconicon):創(chuàng)立一個只顯示圖標的菜單項,圖標由Icon型參數(shù)icon指定JMenuItem(Stringtext):創(chuàng)立一個只顯示文本的菜單項,文本由String型參數(shù)text指定JMenuItem(Stringtext,Iconicon):創(chuàng)立一個同時顯示文本和圖標的菜單項,文本由String型參數(shù)text指定,圖標由Icon型參數(shù)icon指定.JMenuItem(Stringtext,intmnemoni
54、c):創(chuàng)立一個顯示文本并且有快捷鍵的菜單項,文本由String型參數(shù)text指定,快捷鍵由int型參數(shù)mnemonic指定7 .復(fù)選菜單項(JCheckBoxMenuItem)和單項選擇菜單項(JRadioButtonMenuItem)是兩種特殊的菜單項.8 .復(fù)選菜單項(JCheckBoxMenuItem)前面有一個小方框.9 .單項選擇菜單項(JRadioButtonMenuItem)前面有一個小圓圈.10 .復(fù)選菜單項(JCheckBoxMenuItem)和單項選擇菜單項(JRadioButtonMenuItem)都有選中或不選中的操作,因此在構(gòu)造方法中可以用boolean型參數(shù)指定菜單
55、項的初始狀態(tài).第四節(jié):對話框1 .對話框(JDialog)是一個臨時的可移動的窗口,且要依賴于其他窗口,當它所依賴的窗口消失或最小化是,對話框也將消失.當窗口復(fù)原時,對話框會自動恢復(fù).2 .一般要先創(chuàng)立一個窗口類,在創(chuàng)立一個對話框類,且讓對話框依附于窗口.3 .對話框(JDialog)分為強制型和非強制型兩種.強制型對話框被關(guān)閉之前,其他窗口無法接收任何形式的輸入,也就是該對話框過程不能中斷,這樣的窗口也稱為模式窗口;非強制型對話框可以中斷對話過程,區(qū)響應(yīng)對話框之外的事件.4 .對話框(JDialog)的構(gòu)造方法如下:JDialog(Dialogowner):創(chuàng)立一個沒有標題但將指定的對話框作
56、為其所有者的無模式對話框JDialog(Dialogowner,Booleanmodal):創(chuàng)立一個沒有標題但有指定所有者的對話框,boolean型參數(shù)modal指定對話框是有模式或無模式.JDialog(DialogownerStringtitle):創(chuàng)立一個有標題和指定所有者的無模式對話框JDialog(DialogownerStringtitle,Booleanmodal):創(chuàng)立一個有標題和指定所有者的對話框,boolean型參數(shù)modal指定對話框是有模式或無模式.JDialog(Frameowner):創(chuàng)立一個沒有標題但有指定的框架作為其所有者的對話框,JDialog(Frameow
57、ner),Booleanmodal):創(chuàng)立一個沒有標題但有指定的框架作為其所有者的對話框,boolean型參數(shù)modal指定對話框是有模式或無模式.JDialog(FrameownerStringtitle):創(chuàng)立一個有標題和指定所有者框架的無模式對話框JDialog(FrameownerStringtitle,Booleanmodal):創(chuàng)立一個有標題和指定框架所有者的對話框,boolean型參數(shù)modal指定對話框是有模式或無模式.5 .剛剛創(chuàng)立的對話框(JDialog)是不可見的,需要調(diào)用setVisible(true)方法才能將其顯示出來;當對話框不需要顯示時,調(diào)用setVisible(false)方法可以
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB 3624-2024 1000kV交流架空輸電線路金具
- T-ZHCA 031-2024 淋洗類化妝品溫和性評價 重建表皮模型組織活力法
- 二零二五年度房屋代管及租戶租賃合同終止通知協(xié)議
- 二零二五年度公共設(shè)施配套拆遷房產(chǎn)分割及公益基金合同
- 2025年度門面轉(zhuǎn)讓及獨家代理權(quán)合同
- 二零二五年度合資公司股權(quán)合作協(xié)議書
- 2025年度網(wǎng)絡(luò)安全責任方合作協(xié)議范本(適用于互聯(lián)網(wǎng)企業(yè))
- 二零二五年度車輛抵押抵貨款金融創(chuàng)新服務(wù)協(xié)議
- 二零二五年度銷售團隊市場分析聘用協(xié)議
- 二零二五年度農(nóng)村房屋租賃與農(nóng)村社區(qū)文化活動合作協(xié)議
- 高中 語文 必修上冊 第八單元《詞語積累與詞語解釋》課件
- 客觀題法律職業(yè)資格考試(試卷一)試題及解答參考(2024年)
- 【網(wǎng)紅李佳琦直播帶貨營銷策略問題及對策13000字(論文)】
- 2024年人教版九年級英語單詞默寫單(微調(diào)版)
- 2024至2030年中國海洋化工產(chǎn)業(yè)發(fā)展動態(tài)及投資前景分析報告
- 事業(yè)單位工作人員獎勵審批表
- 《婦幼保健學(xué)》課件-第二章 兒童生長發(fā)育
- 22G101三維彩色立體圖集
- 山東省技能大賽青島選拔賽-世賽選拔項目52樣題(平面設(shè)計技術(shù))
- 順豐快遞員工入職合同范本
- 山東省德州市禹城市2023-2024學(xué)年度下學(xué)期期末考試八年級物理試題(無答案)
評論
0/150
提交評論