北京圣思园_Java SE Lesson 11
Java SE Lesson 11
?
1.? 所謂自定義異常,通常就是定義了一個繼承自Exception類的子類,那么這個類就是一個自定義異常類。通常情況下,我們都會直接繼承自Exception類,一般不會繼承
某個運行時的異常類。
?
3.? 如果try 塊中存在return 語句,那么首先也需要將finally塊中的代碼執行完畢,然后方法再返回。例如:
?
?
try
????????????? {
???????????????????? System.out.println("進入到try塊");??? // 第 1 次打印
????????????????????
???????????????????? System.exit(0);???????????????????? //? 執行了 finally 中的語句后就會退出方法
????????????? }
????????????? catch(Exceptionex)
????????????? {
???????????????????? System.out.println("異常發生了");
????????????? }
????????????? finally
????????????? {
???????????????????? System.out.println("進入到finally塊");???? //? 第2條打印語句
????????????? }
?????????????
????????????? System.out.println("異常處理后續的代碼");???? //? 這 條語句不會執行
?????? }
?
4.? 如果try 塊中存在System.exit(0)語句,那么就不會執行finally塊中的代碼,因為System.exit(0)會終止當前運行的Java虛擬機,程序會在虛擬機終止前結束執行。
?
5.?GUI(Graphical User Interface),圖形用戶界面。
?
基本組件???? 容器
?
容器 :? 窗口??對話框?? 所有的容器類都是?java.awt.Container?的直接、間接子類。
?
?
6.?AWT(AbstractWindow Toolkit),抽象窗口工具集,第一代的JavaGUI 組件,是重量級的。基本的AWT庫處理用戶界面元素的方法是把這些元素的創建和行為委托給每個目標平臺上(Windows、Unix、Macintosh等)的本地GUI工具進行處理。不同的平臺效果不同。
?
?
7.?Swing,不依賴于底層細節,輕量級的組件。
?
? Panel是Java.awt.Panel的對象
–Panel是Java.awt.Panel的對象。Panel包含在另一個容器中,或是在Web瀏覽器的窗口中Panel確定一個四邊形,其它組件可以放入其中。Panel必須放在Window之中(或Window的子類中)以便能顯示出來
?
–在框架顯示在屏幕上之前,必須做成可見的(通過調用程序setVisible(true)),而且其大小是確定的(通過調用程序setSize()或pack())
?
?
java.lang.Object
?? |
??+----java.awt.Component
??????????|
??????????+----java.awt.Container
?????????????????? |
??????????????????+----
java.awt.Window ???????????????????????????????????????????? java.awt.Panel
?????????????????????????? |
??????????????????????????????? +----
java.awt.Frame?????????????????????????????????????????? java.awt.Dialog
?
?
? 在AWT中,給我們提供了五種布局管理器:
?
BorderLayout
??? FlowLayout
??? GridLayout
??? CardLayout
???GridBagLayout
?
? 容器中組件的布局通常由布局管理器控制。每個Container(比如一個Panel或一個Frame)都有一個與它相關的缺省布局管理器,它可以通過調用setLayout()來改變?
?
改變布局管理器:
?
frame = new Frame("gui example");
frame.setLayout(new FlowLayout());
?
?
布局管理器:
BorderLayout是Frame類的默認布局管理器 ,BorderLayout 也是一個類
???? BorderLayout將整個容器的布局劃分成東、西、南、北、中五個區域,組件只能被添加到指定的區域。????????????????? 組件大小改變,相對位置不變
?
????? Flow布局管理器不限制它所管理的組件的大小,而是允許它們有自己的最佳大小。?默認是居中放置組件??????組件大小不變,位置改變
?
newFlowLayout(FlowLayout.RIGHT,20,40);
?右對齊,組件之間水平間距20個像素,豎直間距40個像素;
?
newFlowLayout(FlowLayout.LEFT);
?左對齊,水平和豎直間距為缺省值:5;
?
new FlowLayout();
?使用缺省的居中對齊方式,水平和豎直間距為缺省值:5;
?
?
? Grid布局管理器為放置組件提供了靈活性。用許多行和欄來創建管理程序。然后組件就填充到由管理程序規定的單元中。將組件添加到網格中的命令決定它們占有的單元。單元的行數是從左到右填充,就像文本一樣,而列是從上到下由行填充。
?
? Panel
–Panel無法單獨顯示,必須添加到某個容器中。
–Panel的缺省布局管理器為FlowLayout。
–當把Panel作為一個組件添加到某個容器中后,該Panel仍然可以有自己的布局管理器。因此,可以利用Panel使得BorderLayout中某個區域顯示多個組件。
?
在程序中安排組件的位置和大小時,應注意:
–容器中的布局管理器負責各個組件的大小和位置,因此用戶無法在這種情況下設置組件的這些屬性。如果試圖使用Java語言提供的setLocation(),setSize(),setBounds()等方法,則都會被布局管理器覆蓋。
?
–如果用戶確實需要親自設置組件大小或位置,則應取消該容器的布局管理器,方法為:
? setLayout(null);
?
?
Java SE Lesson 12
?
AWT 事件模型:
?
–-編寫代碼來處理在圖形用戶界面中發生的事件。
–-描述Adapter類的概念,包括如何和何時使用它。
–-根據事件對象的細節來確定產生事件的用戶動作。
–-為各種類型的事件創建合適的接口和事件處理。
?
?-事件-描述發生了什么的對象
?-事件源-事件的產生器
?-事件處理器-接收事件、解釋事件并處理用戶交互的方法
?
2.? 當單擊一個按鈕時就會產生一個事件(ActionEvent),然后檢查是否有與該按鈕關聯的事件處理器(實際上就是一個方法),如果沒有,那么什么都不執行;如果有,就會將該事件傳遞給與該按鈕關聯的事件處理器方法,作為該方法的參數,之后該事件處理器方法就會自動得到調用,并且該方法可以使用傳遞過來的ActionEvent對象,進而獲得事件發生時與該事件及事件源相關聯的那些信息。
?
3.?Java中的組件若想添加事件處理器,都會使用形如addXxxListener的方法來添加。
?
類 ????????????????????????????? 對應事件說明
?
MouseEvent? ????????????? 鼠標事件
鼠標按下,鼠標釋放,鼠標點擊等
WindowEvent ????? ?????? 窗口事件
點擊關閉按鈕,窗口得到與失去焦點,窗口最小化等
ActionEvent ?????????????? 動作事件不代表具體的動作,是一種語義,如按鈕或菜單被鼠標單擊,單行文本框中按下回車鍵等都可以看作是ActionEvent事件
?
方法類型和接口:
?
?
適配器:
?
? 你定義的Listener可以繼承Adapter類,而且只需重寫你所需要的方法
? 為了方便起見,Java語言提供了Adapters類,用來實現含有多個方法的類。這些Adapters類中的方法是空的。
?你可以繼承Adapters類,而且只需重寫你所需要的方法
?
為簡化編程,JDK針對大多數事件監聽器接口定義了相應的實現類,我們稱之為事件適配器(Adapter)類
?
在適配器類中,實現了相應監聽器接口所有方法,但不做任何事情,只要繼承適配器類,就等于實現了相應的監聽器接口
?
如果要對某類事件的某種情況進行處理,只要覆蓋相應的方法就可以,其他的方法再也不用“簡單實現”了
?
如果想用作事件監聽器的類已經繼承了別的類,就不能再繼承適配器類了,只能去實現事件監聽器接口了,java中是單繼承的。
?
?
觀察者模式:
?
? 觀察者模式定義了一種一對多的依賴關系,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態上發生變化時,會通知所有觀察者對象,讓他們能夠自動更新自己。
?
?觀察者模式在Java語言中的地位極其重要
? JDK也提供了對觀察者模式的內置支持
?
? Observable類用于創建可以觀測到你的程序中其他部分的子類。當這種子類的對象發生變化時,觀測類被通知。觀測類必須實現定義了update()方法的Observer接口。當一個觀測程序被通知到一個被觀測對象的改變時,update( )方法被調用。
?
?
? 一個被觀測的對象必須服從下面的兩個簡單規則。第一,如果它被改變了,它必須調用setChanged( )方法。第二,當它準備通知觀測程序它的改變時,它必須調用notifyObservers( )方法。這導致了在觀測對象中對update( )方法的調用。注意——當對象在調用notifyObservers( )方法之前,沒有調用setChanged( )方法,就不會有什么動作發生。在update( )被調用之前,被觀測對象必須調用setChanged( )和notifyObservers( )兩種方法。?
?
?
? 為了觀測一個可觀測的對象,必須實現Observer接口。這個接口僅僅定義了如下所示的一個方法。
–void update(Observable observOb, Object arg)
–這里,observOb是被觀測的對象,而arg是由notifyObservers( )方法傳遞的值。當被觀測對象發生了改變,調用update( )方法
?
?
?
?
?
總結
以上是生活随笔為你收集整理的北京圣思园_Java SE Lesson 11的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 手机动态口令_动态密码TOTP
- 下一篇: Java的小tips(1) ------