A. java中什麼是委託事件處理模型
什麼是委託事件模型
在教材上的圖中,我們可以發現,用戶通過鍵盤、滑鼠等進行操縱的行為,最終都傳遞給了JVM,那麼JVM在接收到這些事件以後該如何處理呢?我們把這種處理事件的方案,稱之為事件模型。
Java中採用的是委託事件模型:jdk1.1以後,引入的一種新的事件代理模塊,通過它,事件源發出的事件被委託給(注冊了的)事件監聽器(Listener),並由它負責執行相應的響應方法。比如:病人生病請醫生。
基於這種模型,我們使用兩種類型的對象來執行事件機制,這兩種對象是:
事件源對象
事件的偵聽對象
委託事件模型的實現步驟
在java語言中委託事件模型的處理步驟如下:
1.建立事件源對象。如各種GUI的組件。
2.為事件源對象選擇合適的事件監聽器。比如事件源對象如果是「按鈕」,那麼我們能想到的發生在按鈕身上最多的,應該是單擊事件了。這時我就應該選擇滑鼠單擊事件的監聽器。
3.為監聽器添加適當的處理程序。比如當按鈕單擊事件發生後,希望完成的代碼。
4.為監聽器與事件源建立聯系。
窗體自身實現事件監聽
我們在剛才的例子中使用了兩個對象,一個是事件源對象,即JFrame窗體,另外還創建了一個監聽器對象。事實上在實際開發過程中,我們往往,將這兩個類寫在一起,就是說一個窗體類自己監聽自己的事件
其他事件監聽器介面的使用
Java支持的事件監聽器介面非常多,常見的主要有:
ActionListener 行為監聽介面
AdjustmentListener 調整監聽介面
ItemListener 選項監聽介面
TextListener 文本監聽介面
ComponentListener 組件監聽介面
KeyListener 鍵盤監聽介面
MouseListener 滑鼠點擊監聽介面
MouseMotionListener 滑鼠移動監聽介面
FocusListener 游標聚焦監聽介面
WindowListener 窗體監聽介面
ContainerListener 容器監聽介面
KeyListener介面與KeyAdapter類
KeyListener介面:監聽鍵盤事件。
該介面中定義了如下三個方法:
keyPressed() 鍵盤按下時觸發
keyReleased() 鍵盤釋放時觸發
keyTyped() 鍵盤單擊一次時觸發
KeyAdpeter適配器:即使我們只想使用上述三個方法中的一種,那麼我們也必須在KeyListener介面的實現類中對這三種方法進行重寫,這種方式顯然增加了很多無效代碼,我們可以使用適配器模式解決。
匿名內部類
WindowListener介面與WindowAdapter類
WindowListener介面:監聽窗體的行為。
windowListener介面常用方法:
windowActivated(WindowEvent e) 將 Window 設置為活動 Window 時 調用。
windowClosed(WindowEvent e) 因對窗口調用 dispose 而將其關閉 時調用。
windowClosing(WindowEvent e) 用戶試圖從窗口的系統菜單中關閉窗 口時調用。
windowDeactivated(WindowEvent e) 當 Window 不再是活動 Window 時調用。
windowDeiconified(WindowEvent e) 窗口從最小化狀態變為正常狀 態時調用。
windowIconified(WindowEvent e) 窗口從正常狀態變為最小化狀態 時調用。
windowOpened(WindowEvent e) 窗口首次變為可見時調用。
MouseListener介面與MouseAdapter類
MouseListener介面:監聽滑鼠點擊的行為。
MouseListener介面常用方法:
mouseClicked(MouseEvent e) 滑鼠按鍵在組件上單擊(按下並釋放)時調用。
mouseEntered(MouseEvent e) 滑鼠進入到組件上時調用。
mouseExited(MouseEvent e) 滑鼠離開組件時調用。
mousePressed(MouseEvent e) 滑鼠按鍵在組件上按下時調用。
mouseReleased(MouseEvent e) 滑鼠按鈕在組件上釋放時調用。
MouseMotionListener介面與MouseMotionAdapter類
MouseMotionListener介面:監聽滑鼠移動的行為。
MouseMotionListener介面常用方法:
mouseDragged(MouseEvent e) 滑鼠按鍵在組件上按下並拖動時調用。
mouseMoved(MouseEvent e) 滑鼠按鍵在組件上移動(無按鍵按下)時調用
B. 簡述Java事件委託模型的事件處理機制
java 事件委託機制的概念,一個源產生一個事件並將它送到一個或多個監聽器那裡。在這種方案中,監聽器簡單的等待,直到它收到一個事件。一旦事件被接受,監聽器將處理這個事件,然後返
C. java的listener是什麼原理
Java 最新的事件處理方法是基於授權事件模型
事件源生成事件並將其發送至一個或多個監聽器
監聽器簡單地等待,直到它收到一個事件。一旦事件被接受,監聽器將處理這些事件,然後返回。
事件:在授權事件模型中,事件是一個描述事件源狀態改變的對象 。
通過滑鼠、鍵盤與 GUI 界面直接或間接交互都會生成事件。 如:按下一個按鈕、通過鍵盤輸入一個字元、選擇列表框中的一項、點擊一下滑鼠等。
事件源:事件源是一個生成事件的對象
一個事件源可能會生成不同類型的事件
事件源提供了一組方法,用於為事件注冊一個或多個監聽器。
每種事件的類型都有其自己的注冊方法。一般形式為:
public void addListener (TypeListener e)
AWT採取的事件控制過程:監聽器對象屬於一個類的實例,這個類實現了一個特殊的介面,名為「監聽者介面」
事件源是一個對象,它可以注冊一個或多個監聽器對象,並向其發送事件對象。
事件源將在發生事件時向所有注冊的監聽器發送事件對象。
監聽器對象使用事件對象中的信息來確定它們對事件的響應
事件模型:
1.基於代理(授權)事件模型
事件處理是一個事件源授權到一個或者多個事件監聽器。其基本原理是:組件激發事件,事件監聽器監聽和處理事件,可以調用組件的addListener方法向組件注冊監聽器。把其加入到組件以後,如果組件激發了相應類型的事件,那麼定義在監聽器中的事件處理方法會被調用。
2.此模型主要由以三種對象為中心組成
事件源 由它來激發產生事件
是產生或拋出事件的對象。
事件監聽器 由它來處理事件
實現某個特定EventListener 介面,此介面定義了一種或多種方法,事件源調用它們以響應該介面所處理的每一種特定事件類型 。
事件 具體的事件類型
事件類型封裝在以java.util.EventObject為根的類層次中。當事件發生時,事件記錄發生的一切事件,並從事件源傳播到監聽器對象
D. java中採用事件委託模型實現對事件的監聽正確嗎
正確。
java委託事件模型的使用首先由事件源發起特定事件,並將事件發送給一個或多個事件監控器。其次監控器在此過程中一直處於等待狀態,直到接收到事件,然後處理事件並返回。
事件委託模型是利用冒泡的原理,把本應該添加到某個元素上的事件委託給他的父級,從而減少DOM交互達到網頁優化。
E. java的API中有哪些常用的包
Application Programming Interface 應用程序編程介面,Java的api就多的數不清了,平時編程用的都是API。
F. java swing事件處理模型包括幾部分,分別含義和相互作用
9部分,分別是
標簽 (JLabel)標簽 (JLabel)通常是用來標識另外一個組件的含義。以在標簽上顯示文字、圖象或是文字圖象的組合。
2.密碼框 (JPasswordField)
密碼框實際上是一種特殊類型的文本框,用戶可以向其中輸入文本並加以編輯。
3.菜單
菜單也是一種常用的GUI組件,菜單採用的是一種層次結構,最頂層是菜單欄(JMenuBar);
4.彈出式菜單 彈出式菜單(JPopupMenu)是一種特殊的菜單,和普通菜單的區別在於其不固定在菜單欄中,而是可以四處浮動的。
5.工具條 有些菜單選項的使用頻率較高,每次使用都要打開菜單,效率較低。為此,可以在工具條(JToolBar)中提供與這些菜單選項相對應快捷按鈕,以提高用戶的效率。工具條中通常是一些帶有圖標的按鈕,當然也可以是其它類型的GUI組件
6.對話框
對話框是用戶和應用程序進行交互(對話)的一個橋梁:對話框可以用於收集用戶的輸入數據傳遞給應用程序,或是顯示應用程序的運行信息給用戶。
7.表格 表格(JTable)也是一種常用的GUI組件,常用來顯示大量的數據。
8.樹形控制項
9.JScrollbar 滾動條
G. java中使用輸入語句,需要導入工具包嘛
import java.util.*;
import是引進輸入的意思。在高級編程語言中,如果你想使用某個類或介面,那就要用import導入這個類,如在Java中編寫servlet,使用httpServlet,那就要在文件的開頭(包之後)寫上,import
javax.servlet.http.*;表示導入javax.servlet.http這個包中所有的文件。
單類型導入(single-type-import),例如import java.util.*;
util是utiliy的縮寫,意為多用途的,工具性質的包
這個包中主要存放了:集合類(如ArrayList,HashMap等),隨機數產生類,屬性文件讀取類,定時器類等類。
這些類極大方便了Java編程,日常java編程中,經常要用到這些類。
java.util是 各類常用工具包。包含集合框架、遺留的 collection
類、事件模型、日期和時間設施、國際化和各種實用工具類(字元串標記生成器、隨機數生成器和位數組、日期Date類、堆棧Stack類、向量Vector類等)。集合類、時間處理模式、日期時間工具等各類常用工具包。
*表示這個包下的所有的類。
import java.util.*;這句代碼是調用java.util中所有的類。
JAVA 中包的引入用import.
如果引入的是輸入輸出的話就用 import.java.io.*;
H. 北大青鳥java培訓:js代碼事件機制識別
在各種瀏覽器中存在三種事件模型:原始事件模型,DOM2事件模型,IE事件模型。
其中原始的事件模型被所有瀏覽器所支持,而DOM2中所定義的事件模型目前被除了IE以外的所有主流瀏覽器支持.原始事件模型:在原始事件模型中(也有說DOM0級),事件發生後沒有傳播的概念,沒有事件流。
北大青鳥http://www.kmbdqn.cn/認為事件發生,處理,結束,就這么簡單。
監聽函數只是元素的一個屬性值,通過指定元素的屬性值來綁定監聽器。
書寫方式有兩種:(1)HTML代碼中指定屬性值:(2)在js代碼中指定屬性值:document.getElementsByTagName(『input』)[0].onclick=func優點:所有瀏覽器都兼容缺點:1.邏輯與顯示沒有分離2.相同事件的監聽函數只能綁定一個,後綁定的會覆蓋掉前面的3.無法通過事件的冒泡、委託等機制。
DOM2事件模型此模型是W3C制定的標准模型。
W3C制定的事件模型中,一次事件的發生包含三個過程:(1)事件捕獲階段。
事件被從document一直向下傳播到目標元素,在這過程中依次檢查經過的節點是否注冊了該事件的監聽函數,若有則執行。
(2)事件處理階段。
事件到達目標元素,執行目標元素的事件處理函數.(3)事件冒泡階段。
事件從目標元素上升一直到達document,同樣依次檢查經過的節點是否注冊了該事件的監聽函數,有則執行。
所有的事件類型都會經歷"事件捕獲階段"但是只有部分事件會經歷"事件冒泡階段"階段,例如submit事件就不會被冒泡。
e.target與e.currentTarget是干什麼的?e.target獲取當前實際觸發事件節點,e.currentTarget獲取獲取當前監聽節點。
11111$('div').on('click',function(e){console.log(e.currentTarget);console.log(e.target);})如果點擊span的輸出:li對象span對象點擊li的非span區域,輸出li對象li對象preventDefault與stopPropagation是干什麼的
I. JAVA是什麼
Java是Sun公司推出的一種編程語言。它是一種通過解釋方式來執行的語言,語法規則和C++類似。同時,Java也是一種跨平台的程序設計語言。用Java語言編寫的程序叫做「Applet」(小應用程序),用編譯器將它編譯成類文件後,將它存在WWW頁面中,並在HTML檔上作好相應標記,用戶端只要裝上Java的客戶軟體就可以在網上直接運行「Applet」。 Java非常適合於企業網路和Internet環境,現在已成為Internet中最受歡迎、最有影響的編程語言之一。 Java有許多值得稱道的優點,如簡單、面向對象、分布式、解釋性、可靠、安全、結構
中立性、可移植性、高性能、多線程、動態性等。Java擯棄了C++中各種弊大於利的功能和許多很少用到的功能。 Jave可以運行與任何微處理器,用Java開發的程序可以在網路上傳輸,並運行於任何客戶機上。
面向對象的模型
·對象模型
對象模型表示了靜態的、結構化的系統數據性質,描述了系統的靜態結構,它是從客觀世界實體的對象關系角度來描述,表現了對象的相互關系。該模型主要關心系統中對象的結構、屬性和操作,它是分析階段三個模型的核心,是其他兩個模型的框架。
1.對象和類
(1) 對象。
對象建模的目的就是描述對象。
(2) 類。
通過將對象抽象成類,我們可以使問題抽象化,抽象增強了模型的歸納能力。
(3) 屬性。
屬性指的是類中對象所具有的性質(數據值)。
(4) 操作和方法。
操作是類中對象所使用的一種功能或變換。類中的各對象可以共享操作,每個操作都有一個目標對象作為其隱含參數。
方法是類的操作的實現步驟。
2.關聯和鏈
關聯是建立類之間關系的一種手段,而鏈則是建立對象之間關系的一種手段。
(1) 關聯和鏈的含義。
鏈表示對象間的物理與概念聯結,關聯表示類之間的一種關系,鏈是關聯的實例,關聯是鏈的抽象。
(2) 角色。
角色說明類在關聯中的作用,它位於關聯的端點。
(3) 受限關聯。
受限關聯由兩個類及一個限定片語成,限定詞是一種特定的屬性,用來有效的減少關聯的重數,限定詞在關聯的終端對象集中說明。
限定提高了語義的精確性,增強了查詢能力,在現實世界中,常常出現限定詞。
(4) 關聯的多重性。
關聯的多重性是指類中有多少個對象與關聯的類的一個對象相關。重數常描述為「一」或「多」。
圖10-8表示了各種關聯的重數。小實心圓表示「多個」,從零到多。小空心圓表示零或一。沒有符號表示的是一對一關聯。
3.類的層次結構
(1) 聚集關系。
聚集是一種「整體-部分」關系。在這種關系中,有整體類和部分類之分。聚集最重要的性質是傳遞性,也具有逆對稱性。
聚集可以有不同層次,可以把不同分類聚集起來得到一顆簡單的聚集樹,聚集樹是一種簡單表示,比畫很多線來將部分類聯系起來簡單得多,對象模型應該容易地反映各級層次,圖10-10表示一個關於微機的多極聚集。
(2)一般化關系。
一般化關系是在保留對象差異的同時共享對象相似性的一種高度抽象方式。它是「一般---具體」的關系。一般化類稱為你類,具體類又能稱為子類,各子類繼承了交類的性質,而各子類的一些共同性質和操作又歸納到你類中。因此,一般化關系和繼承是同時存在的。一般化關系的符號表示是在類關聯的連線上加一個小三角形,如圖10-11
4.對象模型
(1)模板。模板是類、關聯、一般化結構的邏輯組成。
(2)對象模型。
對象模型是由一個或若干個模板組成。模板將模型分為若干個便於管理的子塊,在整個對象模型和類及關聯的構造塊之間,模板提供了一種集成的中間單元,模板中的類名及關聯名是唯一的。
·動態模型
動態模型是與時間和變化有關的系統性質。該模型描述了系統的控制結構,它表示了瞬間的、行為化的系統控制
性質,它關心的是系統的控制,操作的執行順序,它表示從對象的事件和狀態的角度出發,表現了對象的相互行為。
該模型描述的系統屬性是觸發事件、事件序列、狀態、事件與狀態的組織。使用狀態圖作為描述工具。它涉及到事件、狀態、操作等重要概念。
1.事件
事件是指定時刻發生的某件事。
2.狀態
狀態是對象屬性值的抽象。對象的屬性值按照影響對象顯著行為的性質將其歸並到一個狀態中去。狀態指明了對象
對輸入事件的響應。
3.狀態圖
狀態圖是一個標準的計算機概念,他是有限自動機的圖形表示,這里把狀態圖作為建立動態模型的圖形工具。
狀態圖反映了狀態與事件的關系。當接收一事件時,下一狀態就取決於當前狀態和所接收的該事件,由該事件引起的狀態變化稱為轉換。
狀態圖是一種圖,用結點表示狀態,結點用圓圈表示;圓圈內有狀態名,用箭頭連線表示狀態的轉換,上面標記事件名,箭頭方向表示轉換的方向。
·功能模型
功能模型描述了系統的所有計算。功能模型指出發生了什麼,動態模型確定什麼時候發生,而對象模型確定發生的客體。功能模型表明一個計算如何從輸入值得到輸出值,它不考慮計算的次序。功能模型由多張數據流圖組成。數據流圖用來表示從源對象到目標對象的數據值的流向,它不包含控制信息,控制信息在動態模型中表示,同時數據流圖也不表示對象中值的組織,值的組織在對象模型中表示。圖10-15給出了一個窗口系統的圖標顯示的數據流圖。
數據流圖中包含有處理、數據流、動作對象和數據存儲對象。
1.處理
數據流圖中的處理用來改變數據值。最低層處理是純粹的函數,一張完整的數據流圖是一個高層處理。
2.數據流
數據流圖中的數據流將對象的輸出與處理、處理與對象的輸入、處理與處理聯系起來。在一個計算機中,用數據流來表示一中間數據值,數據流不能改變數據值。
3.動作對象
動作對象是一種主動對象,它通過生成或者使用數據值來驅動數據流圖。
4.數據存儲對象
數據流圖中的數據存儲是被動對象,它用來存儲數據。它與動作對象不一樣,數據存儲本身不產生任何操作,它只響應存儲和訪問的要求。