點擊查看:2015計算機等級考試二級Java入門教程章節匯總
點擊查看:2015計算機等級考試二級Java入門教程第十三章匯總
13.5 應用程序中的語義事件監聽器
實現語義事件監聽器的一個顯然的候選者就是在Skctcher程序中的SketchFrame類中支持菜單欄操作。當我們在其中的個下拉式菜單中點擊一個菜單項時,就會產生我們可以監聽到的語義事件,然后用它確定相應的程序行為。
在構造圖元對象時,我們使舊elementTyPe和e1ementColor成員設置每個菜單項的狀態。只有對應elementType中默認類型的那個圖元類型菜單項設置為復選,這是因為傳遞給JRadioButtonMenultem構造函數的自變雖比較后只產生一個True.顏色菜單項所使用的方法與之相同,但是要注意為了有效的比較,我們使用在Color類中定義的equals()方法。由于我們只使用在這個類中定義的Color常量值,所以可不必使用==,但是一旦使用的顏色不在這其中,就將不再操作。當然,對于圖元類型項必須使用==,這是因為ID是int類型的。
進行整理后,我們可以為Elements菜單實現監聽器了,讓我們從類型菜單項開始。
我們將增加一個內置類,它將為指定圖元類型的菜單項定義監聽器。這個類將實現ActionListener接口,這是因為我們希望響應這些菜單項的操作行為。把下列定義作為內置類添加到SketchFrame中:
//Handles element type menu items
class TypeListener implements AcLionLisener
{
//Constructor
TypeListener(int type)
{
this.type=type;
}
//sets the element type
public void actionPerformed(ActionEven:0)
(elementType=type; )
private int type; //Store the type for the menu
}
現在我們可以使用這個類的對象作為菜單項的監聽器。把下列代碼添加到SketchFrame構造函數中的建立Elements菜單的類型菜單項代碼之后:
//Add type menu item listeners
lineItem.addActionListener(new TypeListener(LINE));
rectangleItem.addActionListener(new TypeListener(RECTANGLE));
circleItem.addActionListener(new TypeListener(RIRCLE)
curveItem.addActionListener(new TypeListener(CURVE));
為了把java.awt.event包加到SketcherFrarme類中,還需要增加一條import語句幣新編譯Sketcher ,看看它是如何操作的。
如何工作
與SketchFrame對象中設置當前圖元類型沒有什么不同。監聽器類極其的簡單。每個監聽器對象存儲與菜單項對應的類型,它是由自變量傳遞給構造函數的,當發生事件時。actionPerformed()方法存儲SketchFrarme對象的。eletmentType成員中監聽對象的類型。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |