網站建設核心之動作處理

2022-08-20    分類: 網站建設

通常,激活一個命令可以有多種方式,用戶可以通過菜單、擊鍵或工具欄上的按鈕選擇特定的功能。在AWT事件模型中實現這些非常容易:將所有事件 連接到同一個監聽器上。例如:假設blueAction是一個動作監聽器,它的actionPerformed方法可以將背景顏色改變成藍色。將一個監聽 器對象加到下面幾個事件源上:

·標記為Blue的工具欄按鈕
·標記為Blue的菜單項
·擊鍵CTRL+B
然后,無論改變背景顏色的命令是通過哪種方式下達的,是點擊按鈕、菜單選擇,還是按下鍵盤,其操作動作都是一樣的。
Swing包提供了一種非常實用的機制來封裝命令,并將它們連接到多個事件源,這就是Action接口。一個動作是一個封裝下列內容的對象:
·命令的說明(一個文本字符串和一個可選圖標);
執行命令所需要的參數(例如,在列舉的例子中請求改變的顏色)。
一個方法是ActionListener接口中很熟悉的一個:實際上,Action接口擴展于ActionListener接口,因此,可以在任何需要ActionListener對象的地方使用Action對象。
接下來的兩個方法允許啟用或禁用這個動作,并檢查這個動作當前是否啟用。當一個連接到菜單或工具欄上的動作被禁用時,這個選項就會變成灰色。
putValue和getvalue方法允許存儲和檢索動作對象中的任意名/值。有兩個重要的預定義字符串:Action.NAME和Action.sMALLjcON,用于將動作的名字和圖標存儲到一個動作對象中。
如果動作對象添加到菜單或工具欄上,它的名稱和圖標就會被自動地提取出來,并顯示在菜單項或工具欄中。SHORT_DESCRiRTION值變成了工具提示。
Action接口的最后兩個方法能夠讓其他對象在動作對象的屬性發生變化時得到通告,尤其是菜單或工具欄處罰的動作。例如,如果增加一個菜單,作為動作 對象的屬性變更監聽器,而這個動作對象隨后被禁用,菜單就會被調用,并將動作名稱變為灰色。屬性變更監聽器是一種常用的構造形式,它是JavaBeans 組件模型的一部分。
需要注意,Action一個接口,而不是一個類。實現這個接口的所有類都必須實 現剛才討論的7個方法。慶幸的是,有一個類實現了這個接口除actionPerformed方法之外的所有方法,它就是AbstractAction個類 存儲了所有名/值對,并管理著屬性變更監聽器。我們可以直接擴展AbstractAction類,并在擴展類中實現actionPerformed方法。
構造器讀取動作的名稱和圖標,為工具提示設置簡要說明,將工作設置為監聽器。
最后,想要將這個動作對象添加到擊鍵中,以便讓用戶敲擊鍵盤命令來執行這項動作。為了將動作與擊鍵關聯起來,首先需要生成KeyStroke類對象。這 是一個很有用的類,它封裝了對鍵的說明。要想生成一個Keystroke對象不要調用構造器,而是調用KeyStroke類中的靜態 getKeyStroke方法:
為了能夠理解下一個步驟,需要知道keyboardfocus的概 念。用戶界面中可以包含許多按鈕、菜單、滾動欄以及其他的組件。當用戶敲擊鍵盤時,這個動作會被發送給擁有焦點的組件。通常具有焦點的組件可以明顯地察覺 到(但并不總是這樣),例如,在Java觀感中,具有焦點的按鈕在按鈕文本周圍有一個細的矩形邊框。用戶可以使用TAB鍵在組件之間移動焦點。當按下 SPACE鍵時,就點擊了擁有焦點的按鈕。還有一些鍵執行一些其他的動作,例如,按下箭頭鍵可以移動滾動條。
然而,在這里的示例中,并不希望將擊鍵發送給擁有焦點的組件。否則,每個按鈕都需要知道如何處理CTRL+Y、CTRL+B和CTRL+R這些組合鍵。
這是一個常見的問題,Swing設計者給出了一種很便捷的解決方案。每個JComponent有三個輸入映射(imput maps),每一個映射的KeyStroke對象都與動作關聯。

名稱欄目:網站建設核心之動作處理
本文鏈接:http://m.kartarina.com/news/191663.html

成都網站建設公司_創新互聯,為您提供網站導航品牌網站制作電子商務網站排名商城網站ChatGPT

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站網頁設計
主站蜘蛛池模板: 黑人无码精品又粗又大又长| 久久老子午夜精品无码怎么打| 亚洲VA中文字幕无码毛片| 少妇人妻av无码专区| 性色av无码不卡中文字幕 | MM1313亚洲精品无码久久| 狠狠精品久久久无码中文字幕| 国产无遮挡无码视频免费软件| 亚洲av无码专区青青草原| 人妻中文无码久热丝袜| 国产怡春院无码一区二区| 亚洲大尺度无码无码专区| 免费无码看av的网站| 精品无码AV一区二区三区不卡| 无码国产成人午夜电影在线观看 | 无码精品人妻一区二区三区影院| 中文字幕无码第1页| 精品久久久无码中字| 中文无码热在线视频| 亚洲AV无码欧洲AV无码网站| 一区二区三区无码高清| 久久久久久99av无码免费网站| 精品无码无人网站免费视频| 亚洲AV日韩AV永久无码绿巨人| 亚洲中久无码不卡永久在线观看| 伊人天堂av无码av日韩av| 无码人妻黑人中文字幕| 久久久久成人精品无码| 亚洲人成人无码网www国产| 亚洲av成本人无码网站| 亚洲午夜无码久久久久小说| 亚洲国产成人精品无码区在线秒播 | 国产aⅴ无码专区亚洲av麻豆 | 无码人妻精品中文字幕| 中文字幕久无码免费久久| 天天看高清无码一区二区三区| 日韩夜夜高潮夜夜爽无码| 国产精品无码av天天爽| 潮喷失禁大喷水aⅴ无码| AV无码精品一区二区三区宅噜噜| 国产免费久久久久久无码|