淺談用java實現事件驅動機制(如何理解事件驅動機制)

本文目錄一覽:

誰能給我講講java中的請求驅動和事件驅動?

什麼是事件驅動模型?

在講解事件驅動模型之前,我們現在看看事件驅動模型的三大要素:

·事件源:能夠接收外部事件的源體。

·偵聽器:能夠接收事件源通知的對象。

·事件處理程序:用於處理事件的對象。

學員應該要理解任何基於事件驅動模型的開發技術都包含以上三大要素,不管是.net還是java技術,甚至是以前我們使用的Visual Basic和Delphi語言都有基於以上三大要素的事件驅動模型開發流程。

現在我們來看一個生活中的示例,假如有一天你走在路上一不小心被天上掉下來的花瓶砸到了,並且暈死了過去。那麼整個過程其實就是一個事件處理流程,而且我們可以非常方便的分析出剛才所提到的事件驅動模型中的三大要素。

1.被砸暈的這個人其實就是事件源,因為他是能夠接受到外部的事件的源體。

2.偵聽器就是這個人的大腦神經,因為它會感知到疼痛。

3.事件處理就是這個人暈死了過去。

由於事件驅動模型在我們日常生活中是無處不在的,因此Java和其他的編程語言都將這一過程運用到了可視化編程中了。

這樣的計算器界面,Java如何設計其事件驅動程序?

你可以這樣,這裡主要的難點應該是點擊這個「=」號對運算符號的處理,你在程序裡面定義一個字元串且為全局變數,static String s=null;,點擊「+」按鈕的事件處理代碼為button1.addActionListener(new ActionListener(){

s=”+”;

});

點擊「-」按鈕的事件處理代碼為:

button2.addActionListener(new ActionListener(){

s=”-“;

});

點擊「*」按鈕的事件處理代碼為:

button3.addActionListener(new ActionListener(){

s=”*”;

});

點擊「/」按鈕的事件處理代碼為:

button3.addActionListener(new ActionListener(){

s=”/”;

});

最後就是對這「=」按鈕的事件處理,從你界面上看,「運算數一」、「運算數二」、「運算結果」都應該是JTextField或者TextField,以JTextField為例,

JTextField text1=”0.”;

JTextField text2=”0.”;

JTextField text3=”0.”;

「=」按鈕的事件響應:

button.addActionListener(new ActionListener(){

String s1=text1.getText();

String s2=text2.getText();

long result=0L;

if(s.equals(“+”))

result= Integer.parseInt(s1)+Integer.parseInt(s2);

f(s.equals(“-“))

result= Integer.parseInt(s1)-Integer.parseInt(s1);

if(s.equals(“*”))

result= Integer.parseInt(s1)*Integer.parseInt(s1);

if(s.equals(“/”))

result= Integer.parseInt(s1)/Integer.parseInt(s1);

text3.setText(Long.toString(resutl));

});

至於其他的數字按鈕的事件響應就不用我一一在寫了吧,很簡單的,就是點擊某個數字按鈕,比如5,就把5這個數字放入當前的JTextField中就行了,假設當前游標在「運算數一」那一欄,例:

button_5.addActionListener(new ActionListener(){

text1.setText(text1.getText()+button_5.getText());

});

就這樣了,我沒有用編譯器寫,可能編譯有不對的地方,但是思路就是這樣,很簡單的!

在已經編寫好的Java「靜態」GUI界面程序基礎上要實現事件驅動功能,通常又必須包含四個基本步驟?

在已經編寫好的Java「靜態」GUI界面程序基礎上要實現事件驅動功能,通常又必須包含四個基本步驟?

寫出Java事件驅動機制的工作原理

Swing是目前Java中不可缺少的窗口工具組,是用戶建立圖形化用戶界面(GUI)程序的強大工具。Java Swing組件自動產生各種事件來響應用戶行為。如當用戶點擊按鈕或選擇菜單項目時,Swing組件會產生一個ActionEvent。Swing組件會產生許多事件,如ActionEvents,ChangeEvents,ItemEvents等,來響應用戶的滑鼠點擊行為,列表框中值的改變,計時器的開始計時等行為。在Java Swing編程中,通過註冊監聽器,我們可以監聽事件源產生的事件,從而在事件處理程序中處理我們所需要處理的用戶行為。

Java Swing中處理各組件事件的一般步驟是:

1. 新建一個組件(如JButton)。

2. 將該組件添加到相應的面板(如JPanel)。

3. 註冊監聽器以監聽事件源產生的事件(如通過ActionListener來響應用戶點擊按鈕)。

4. 定義處理事件的方法(如在ActionListener中的actionPerformed中定義相應方法)。

以上步驟我們可以用多種方法實現。但人們通常用二種方法。第一種方法是只利用一個監聽器以及多個if語句來決定是哪個組件產生的事件;第二種方法是使用多個內部類來響應不同組件產生的各種事件,其具體實現又分兩種方式,一種是匿名內部類,一種是一般內部類。

JAVA中的事件驅動編程怎麼理解

事件驅動

那麼什麼是事件呢?比如說抬手,吃蘋果,玩手機,打英雄聯盟,說白了就是一個動作

那麼驅動是什麼呢?比如說抬起手來看看手中的手機有沒有消息,玩手機看到一條很有意思的說說,打英雄聯盟輸了,說白了就是事件產生的後續結果。

那麼事件驅動就是一個因果關係,我觸發了什麼,什麼就會執行,如果有個中間人,那麼就會告訴中間人,我幹了什麼,比如說Java中的按鈕的點擊事件,就是這樣的。希望以上對你的理解有所幫助。

什麼是事件驅動編程機制

事件驅動編程機製為需要處理的事件編寫相應的事件處理程序

要理解事件驅動和程序,就需要與非事件驅動的程序進行比較。

實際上,現代的程序大多是事件驅動的,比如多線程的程序,肯定是事件驅動的。

早期則存在許多非事件驅動的程序,這樣的程序,在需要等待某個條件觸發時,會不斷地檢查這個條件,直到條件滿足,這是很浪費cpu時間的。

而事件驅動的程序,則有機會釋放cpu從而進入睡眠態(注意是有機會,當然程序也可自行決定不釋放cpu),當事件觸發時被操作系統喚醒,這樣就能更加有效地使用cpu。

擴展資料:

為需要處理的事件編寫相應的事件處理程序。代碼在事件發生時執行。

delphi和java編程特點

n事件(event)表示程序某件事發生的信號,事件分為:

o外部事件:由外部用戶動作產生的事件。例如,點擊滑鼠、按鍵盤。

o內部事件:由系統內部產生的事件。例如,定時器事件。

n源對象(source object)是產生事件的對象。

參考資料百度百科-事件驅動編程

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/248955.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:30
下一篇 2024-12-12 13:30

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論