黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java菜單欄事件

Java菜單欄事件

更新時間:2022-05-30 11:55:02 來源:動力節(jié)點 瀏覽1814次

Java菜單欄事件是什么?動力節(jié)點小編來為大家介紹。

1. Java事件處理三要素:

(1)事件源(Event Source):即事件發(fā)生的場所,就是指各個組件,如按鈕等,點擊按鈕其實就是組件上發(fā)生的一個事件;

(2)事件(Event):事件Java封裝了組件上發(fā)生的事情,比如按鈕單擊、按鈕松開等等;

(3)事件監(jiān)聽器(Event Listener):負責監(jiān)聽事件源上發(fā)生的特定類型的事件,當事件到來時還必須負責處理相應的事件;

2. 事件處理的機制:

(1)首先事件是有不同的類別的,比如按鈕單擊、菜單項單擊等事件就屬于“動作事件”(Action Event),而關閉窗口、最小化窗口等事件就屬于“窗口事件”(Window Event);

(2)不同類型的事件需要用不同類型的監(jiān)聽器監(jiān)聽;

(3)而監(jiān)聽器是一種類對象,這種類必須實現(xiàn)監(jiān)聽器接口(Listener),對于監(jiān)聽不同類型的事件AWT庫準備了不同類型的監(jiān)聽器接口,比如要監(jiān)聽動作事件就必須實現(xiàn)ActionListener接口,監(jiān)聽窗口事件就必須實現(xiàn)WindowListener接口;

監(jiān)聽器中最重要的就是事件處理方法了,監(jiān)聽器必須在接受事件之后進行處理(響應);

(4)如何實現(xiàn)監(jiān)聽?

首先事件源(發(fā)生事件的組件)必須同意我身上發(fā)生的事件允許那些監(jiān)聽器監(jiān)聽;

也就是說想監(jiān)聽它身上發(fā)生的事件的監(jiān)聽器必須到它這里注冊,即組件必須調(diào)用方法addXxxListener將監(jiān)聽器注冊到它的監(jiān)聽器列表中;

當事件發(fā)生時就會將事件對象(Event)發(fā)送到所有注冊過的監(jiān)聽器那里進行處理;

(5)事件源、事件、監(jiān)聽器的對應關系:

首先一個事件源可以產(chǎn)生多種類型的事件,比如窗口右上角的×按鈕,當單擊它時就會產(chǎn)生兩種類型的事件,一個是按鈕單擊事件(屬于Action Event),另一個是窗口關閉事件(屬于Window Event);

監(jiān)聽器接口是什么類型就發(fā)送什么類型的事件:如果注冊的監(jiān)聽器實現(xiàn)的是ActionEvent的接口,那么上述×按鈕就只發(fā)送按鈕單擊事件給它而不會發(fā)送窗口關閉事件,除非監(jiān)聽器同時實現(xiàn)了兩種類型的接口,那么該監(jiān)聽器就會同時受到兩種類型的事件;

一個事件源可以注冊多個監(jiān)聽器:一般符合邏輯的編程思想就是不同監(jiān)聽器監(jiān)聽、處理不同類型的事件,因此對于可以產(chǎn)生多種類型事件的事件源會注冊多種類型的監(jiān)聽器,分別負責處理產(chǎn)生的多種事件;

當然一個事件源也可以注冊多個相同類型的監(jiān)聽器,即比對于同一個事件(按鈕單擊),事件源注冊多個實現(xiàn)ActionListener接口的監(jiān)聽器,那么這些監(jiān)聽器都會受到該事件,可能會疑問,這不是多此一舉嗎?一種事件就給出一種處理不是很好嗎?那是因為有些情況下可能需要一個事件觸發(fā)多種動作,每個監(jiān)聽器負責實現(xiàn)一個動作;

一個監(jiān)聽器可以監(jiān)聽多個事件源上的事件,即多個不同的組件用addXxxListener方法注冊同一個監(jiān)聽器,那么當不同事件到來時監(jiān)聽器會調(diào)用其不同方法進行處理,或者在一個方法內(nèi)部判斷傳進來的是什么事件,再進行特殊的處理;

3. 編寫事件處理程序的基本流程:

(1)首先需要實現(xiàn)監(jiān)聽器類:自己編寫一個類,至少要實現(xiàn)一種類型的監(jiān)聽器接口,并實現(xiàn)接口中所有的事件處理方法;

(2)創(chuàng)建組件,并對組件注冊響應的監(jiān)聽器:首先需要創(chuàng)建監(jiān)聽器對象,將監(jiān)聽器對象作為參數(shù)傳入組件的addXxxListener方法完成注冊;

(3)全部工作完成,事件的處理完全自動進行;

(4)簡單的示例:處理一個按鈕的單擊事件

public class AwtTest {
Frame f = new Frame("Event Test");
TextField tf = new TextField(30);
Button ok = new Button("OK");
class OkListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("OK button pushed!");
tf.setText("Hello!");
}
}
public void init() {
f.add(tf);
f.add(ok, BorderLayout.SOUTH);
ok.addActionListener(new OkListener());
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
new AwtTest().init();
}
}

4. 事件源-監(jiān)聽器多對多示例:

public class AwtTest {
Frame f = new Frame("Multiple Event Test");
TextArea ta = new TextArea(6, 40);
Panel p = new Panel();
Button btn1 = new Button("button1");
Button btn2 = new Button("button2");
class Listener1 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ta.append("Listener1 be activated! Event Source:" + e.getActionCommand() + "\n");
}
}
class Listener2 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ta.append("Listener2 be activated! Event Source:" + e.getActionCommand() + "\n");
}
}
public void init() {
f.add(ta);
p.add(btn1);
p.add(btn2);
f.add(p, BorderLayout.SOUTH);
Listener1 l1 = new Listener1();
Listener2 l2 = new Listener2();
btn1.addActionListener(l1);
btn2.addActionListener(l1);
btn2.addActionListener(l2);
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
new AwtTest().init();
}
}

以上就是關于“Java菜單欄事件”的介紹,大家如果想了解更多相關知識,可以關注一下動力節(jié)點的Java在線學習,里面的課程內(nèi)容細致全面,從入門到精通,適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 海天翼精品一区二区三区 | 一级有奶水毛片免费看 | 免费91最新地址永久入口 | 国内精品免费视频 | 在线观看黄色大片 | 欧美第二页 | 亚洲三区视频 | 黄图视频在线观看 | 麻豆视频一区二区 | 婷婷激情小说网 | 最近中文字幕高清视频2019 | 91在线 | 欧美 | 久久成年视频 | 女色专区 | 91小视频版在线观看www | 欧美在线观看一区 | 国产欧美在线观看视频 | 精品成人在线观看 | 天堂在线视频 | 色香蕉视频| 可以免费观看一级毛片黄a 可以免费观看的一级毛片 可以免费观看的黄色网址 可以看的黄色网址 | 日韩在线中文 | 日日操日日 | 国自产拍91大神精品 | 成人播放 | 天堂在线视频 | 三级伦理在线 | 欧美啪啪一区 | 欧美区在线观看 | 国产伦码精品一区二区 | 日韩字幕在线 | 亚洲影视一区二区 | 免费黄色在线观看 | 国产制服丝袜在线 | 91精品国产免费自在线观看 | 中国一级黄色录像片 | 国产亚洲一区在线 | 日本大片成人免费网址 | 久久综合九色综合97小说 | 国产v国产v片大片线观看网站 | 怡红院日本一道日本久久 |