Java Action介面的使用

2021-09-13 15:47:55 字數 2759 閱讀 5580

一 、 我們常常會遇到這樣乙個問題:很多元件都需要處理相同的事件 ; 比如,通常乙個軟體在設計時會因使用者習慣,

產生不同的操作方式卻能達到相同的功能,例如文書編輯器中,copy功能可能在選單**現,

也可能在工具欄上出現,甚至在快顯選單(popup menu)**現,雖然出現的方式不一樣,

但均能達到copy的功能.若以我們之前的事件處理方法,我們必須為每種出現方式實現copy功能,

造成程式**重複性太高,不易閱讀也不美觀。現在我們就有這樣乙個處理方法——使用action介面

二、action從表面的意思上就是「動作、行為」 , 也就說乙個實現action介面的物件,本身就是一種業務,就是一種

處理功能,我們可以使用這個業務物件來建立不同的元件(如普通按鈕、選單項、工具欄按鈕等),這樣的話這些元件

就都有相同的功能了

三、下面就來詳細的介紹action介面的用法

1、action介面是actionlistener介面的子介面,它除了包含actionlistener介面的actionperformed()方法之外,

還含有name和icon兩個屬性,其中name用於指定建立的按鈕或者選單項的文字標籤,icon則用於指定按鈕的圖示或者

選單項中的圖示。也就是說,action介面將「事件監聽」和「可被轉換成按鈕和選單項」集於一身,這恰好說明了上面所說的

功能

2、實際上在jbutton的構造方法 public jbutton(action action )中、j*******的add(action action) 、以及jmenu的

add(action action )方法中都可以看出,他們都能夠使用action物件為引數,將action自動的轉化為按鈕或者選單項,你要做的

僅僅是定義乙個action物件,之後僅僅需要呼叫上面的方法就能夠自動的將action轉化成元件了

3、就像上面說的那樣,action本身並不是元件,只有應用jbutton的構造方法或者將action新增到指定的元件容器中(j*******或者jmenu)

才能夠將值轉化成元件

4、總結上面的各項我們可以得出,接收action的容器(或者jbutton)需要完成以下幾項工作:

①使用add方法新增action物件

②根據action物件中的name和icon屬性,自動的建立按鈕或者選單項

③通過action物件為應用元件註冊事件***,系統會為該action所建立的所有的元件註冊同乙個事件***

(事件處理器就是action物件裡的actionperformed()方法)

④在action介面中還有乙個setenabled(boolean)方法,這個方法用來指定當前的action動作是否被啟用,

只有乙個action動作被啟用後,相應的元件才能夠使用③中的***來處理業務,這是為什麼呢?比如:我們建立了

「複製」「貼上」兩項action業務的話,那麼只有當複製完成後,「貼上」業務才可以被啟用,否則「貼上」業務預設

應該是不被啟用的

好了,基本的邏輯搞清楚之後,那麼下面就是如何建立乙個action物件了,一般我們並不是直接通過建立乙個

實現action介面的類,之後在通過這個類來建立action型別的物件,而是建立乙個實現abstractaction抽象類的類;

這個抽象類abstractaction實現了action介面,而且這個抽象類,除了actionperformed()方法之外,

已經將action中包括setenabled(boolean)在內的所有方法都實現了,這樣一來我們就能夠直接使用setenabled()

等游泳的方法了;好了這樣一來abstractaction抽象類中只有actionperformed()方法沒有實現,這個方法應該在

建立的那個實現了abstractaction類的類中實現;所以建立乙個action物件的過程如下:

①建立乙個類(設為b類),讓這個類繼承abstractaction抽象類

②建立b類的構造方法,為abstractaction中的name和icon屬性賦值

(abstractaction抽象類中有構造方法 publicabstractaction(string name,icon icon)

③在b類中實現actionperformed()方法,在些業務處理時,要注意是要將某些其他的業務啟用或者關閉

介面的使用

由於c 類不能多重繼承。但現實有許多多重繼承的情況。為了避免傳統多重繼承帶來的複雜性問題和滿足多重繼承的需要,就提出了介面的概念。介面提出了一種規範,讓使用介面的程式設計人員要遵守其提出的約定。c 中申明介面時,使用關鍵字inte ce。using system using system.colle...

使用介面的好處

1 用介面來引用特定的實現類,而不是用 特定的類來引用自己 list list new arraylist list list new linkedlist 一旦需要改變自己的實現細節,要做的全部事情就是在建立的時候改變它。其餘 可保持原樣 2 用介面來呼叫其實現類的方法 service servi...

java Enumeration介面的使用例子

enumeration介面 enumeration介面本身不是乙個資料結構。但是,對其他資料結構非常重要。enumeration介面定義了從乙個資料結構得到連續資料的手段。例如,enumeration定義了乙個名為nextelement的方法,可以用來從含有多個元素的資料結構中得到的下乙個元素。en...