『壹』 java事件驅動模型 是什麼設計模式
HTTP 1.1 是一個請求響應模式的協議,這就限制了相關的實現中,在一個tcp會話上(socket),requets發出來之後就進入 等待 response的狀態。 非同步是為了解決當進行不涉及到大量CPU運算而耗時又相當長時釋放CPU的處理時間。
『貳』 1.java的事件處理機制是怎樣的
java事件處理機制你必須得明確以下幾個概念:
核心:java採用的是事件源——事件監聽器模型
1:事件(event):是指一個狀態的改變,或者一個活動的發生。例如,簡單常見的是單擊一個按鈕,或者輸入一個按鍵都是一個事件。
2:事件源(event source):能夠產生事件的對象稱為事件源,如文本框,按鈕,下拉列表等。
3:事件監聽器(event listener):需要一個對象對事件源進行監聽,以便對發生的事件做出處理,該對象就是事件監聽器。事件源通過調用相應的方法將某個對象作為自己的監聽器。無論應用程序還是小程序都採用這一機制。
例,對於按鈕,注冊監聽器的方法是 addActionListener(監視器);:
4: 事件源獲得監聽器之後,相應的操作就會導致事件的發生,並通知監聽器,監聽器就會做出相應的處理。
5:處理事件的介面:監聽器負責處理事件源發生的事件。為了處理事件源發生的事件,監聽器會自動調用一個方法來處理事件,該方法定義在相應事件的介面中。
『叄』 java自定義事件,線程a如何每一秒鍾觸發一個事件,然後另一個線程b監聽之,並作出反應
線程a是作為事件源,那麼線程a這個類就必須提供一個可以增加監聽器的方法,就像GUI編程中的addActionListener這個樣的方法。線程a這個類裡面是有一個專門存放監聽器的一個容器,例如是list。然後你 增加監聽器的方法就是把監聽器放進這個容器裡面。你用一個監聽器去監聽一個事件的發生,就可以在線程a這個類中,寫一個產生事件的一段代碼,然後每當產生一個事件之後,去遍歷list,去調用監聽器的對於這個事件的處理方法,這樣子就可以了。這應該就是java中的事件模式。
『肆』 簡述java編程中事件處理模式。
叫注冊偵聽模式。
就是對事件感興趣的對象把自己注冊到事件源對象那裡,然後事件源對象當事件發生時就會一次調用注冊到自身的那些對象的而相應方法。然後事件就被處理了。
『伍』 java中事件機制是一種什麼設計模式
是對發出事件的疑惑。每個平台的具體實現方法不同,不過你可以假象這樣的狀況:
在程序的底層有一個消息循環,專門檢測各種狀態,當一些狀態改變時就「發出事件」。例如鍵盤輸入會設置一個狀態,程序在消息循環里看到了狀態的改變,於是調用onKeyDown、onKeyUp等方法。這種與I/O相關的事件涉及到操作系統也不奇怪。
就是說在實現圖形界面的庫的底層會有類似這樣的循環:
『陸』 java的事件處理機制是怎樣
JAVA中當事件發生時,他不會進行廣播,而是僅僅向關心此事件的對象發送消息。那麼他怎麼知道誰「關心」此事件呢。
這就要求關心此事件的對象,先行向事件的發出方進行注冊,表示我關心此事件,當事件發生時請通知我。
【簡單來說】:就是事件的「處理方」向事件的「發出方」先行注冊,當事件發生時,事件的「發生方」負責通知事件的「處理方」。
譬如我編寫一個窗口,用到了JFrame,我想實現一個功能,當按下Q鍵時,窗口關閉。
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
public class TestFrame extends JFrame {
private static final long serialVersionUID = 5671798241966272024L;
public static void main(String[] args) {
new TestFrame();
}
public TestFrame() {
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
addKeyListener(new MyKeyListener());// 這句話就是所謂的注冊事件。
// MyKeyListener作為事件的處理方,向事件的觸發方TestFrame進行注冊。
// 這句話的意思是說,MyKeyListener對TestFrame說,我對於你的鍵盤事件感興趣,如果有鍵盤事件請告訴我。
// 而TestFrame有一個列表保存著MyKeyListener對象的引用。當鍵盤按下時,他會列表中所有引用,調用KeyPressed方法。
// 當鍵盤松開時還會調用keyReleased方法,但是我們對於鍵盤松開不太關心,所以下面的類,我們可以只編寫KeyPressed方法。
}
private final class MyKeyListener extends KeyAdapter {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_Q) {
System.exit(0);
}
}
}
}
『柒』 簡述java事件處理機制
java事件處理機制你必須得明確以下幾個概念:
核心:java採用的是事件源——事件監聽器模型
1:事件(event):是指一個狀態的改變,或者一個活動的發生。例如,簡單常見的是單擊一個按鈕,或者輸入一個按鍵都是一個事件。
2:事件源(event source):能夠產生事件的對象稱為事件源,如文本框,按鈕,下拉列表等。
3:事件監聽器(event listener):需要一個對象對事件源進行監聽,以便對發生的事件做出處理,該對象就是事件監聽器。事件源通過調用相應的方法將某個對象作為自己的監聽器。無論應用程序還是小程序都採用這一機制。
例,對於按鈕,注冊監聽器的方法是 addActionListener(監視器);:
4: 事件源獲得監聽器之後,相應的操作就會導致事件的發生,並通知監聽器,監聽器就會做出相應的處理。
5:處理事件的介面:監聽器負責處理事件源發生的事件。為了處理事件源發生的事件,監聽器會自動調用一個方法來處理事件,該方法定義在相應事件的介面中。
『捌』 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) 滑鼠按鍵在組件上移動(無按鍵按下)時調用
『玖』 java 狀態機模式 事件 狀態 當前狀態有多個下一狀態
大多數的應用程序如果在開發時考慮採用兩個以上線程,那麼一般情況下是為每個線程分配了獨立的功能,且這些功能能夠逗並發地地執行。講一個二樓同學說到的網路I/O例子:點對點的聊天工具,需要在我們編寫信息的同時能夠接受並列印出來對方說的話。