最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java監(jiān)聽(tīng)器ActionListener與MouseListener的執(zhí)行順序說(shuō)明

 更新時(shí)間:2021年12月04日 11:00:41   作者:Starzkg  
這篇文章主要介紹了Java監(jiān)聽(tīng)器ActionListener與MouseListener的執(zhí)行順序說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

基本概念

  • 監(jiān)聽(tīng)器(Listener):監(jiān)聽(tīng)器用于監(jiān)聽(tīng)web應(yīng)用中某些對(duì)象、信息的創(chuàng)建、銷(xiāo)毀、增加,修改,刪除等動(dòng)作的發(fā)生,然后作出相應(yīng)的響應(yīng)處理。當(dāng)范圍對(duì)象的狀態(tài)發(fā)生變化的時(shí)候,服務(wù)器自動(dòng)調(diào)用監(jiān)聽(tīng)器對(duì)象中的方法。常用于統(tǒng)計(jì)在線人數(shù)和在線用戶,系統(tǒng)加載時(shí)進(jìn)行信息初始化,統(tǒng)計(jì)網(wǎng)站的訪問(wèn)量等等。
  • ActionListener:ActionListener用于接收操作事件的偵聽(tīng)器接口。對(duì)處理操作事件感興趣的類(lèi)可以實(shí)現(xiàn)此接口,而使用該類(lèi)創(chuàng)建的對(duì)象可使用組件的 addActionListener 方法向該組件注冊(cè)。在發(fā)生操作事件時(shí),調(diào)用該對(duì)象的 actionPerformed 方法。
  • MouseListener:處理鼠標(biāo)事件的類(lèi)要么實(shí)現(xiàn)此接口(及其包含的所有方法),要么擴(kuò)展抽象類(lèi) MouseAdapter(僅重寫(xiě)所需的方法)。 然后使用組件的 addMouseListener 方法將從該類(lèi)所創(chuàng)建的偵聽(tīng)器對(duì)象向該組件注冊(cè)。當(dāng)按下、釋放或單擊(按下并釋放)鼠標(biāo)時(shí)會(huì)生成鼠標(biāo)事件。鼠標(biāo)光標(biāo)進(jìn)入或離開(kāi)組件時(shí)也會(huì)生成鼠標(biāo)事件。發(fā)生鼠標(biāo)事件時(shí),將調(diào)用該偵聽(tīng)器對(duì)象中的相應(yīng)方法,并將 MouseEvent 傳遞給該方法。
  • MouseAdapter:用于接收鼠標(biāo)事件的抽象適配器類(lèi)。 這個(gè)類(lèi)中的方法是空的。 此類(lèi)作為創(chuàng)建偵聽(tīng)器對(duì)象的方便而存在。

開(kāi)發(fā)環(huán)境

  • JAVA 1.8
  • Eclipse 201803

源代碼

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUIDEMO { 
	public static void main(String[] args) {
		// TODO 自動(dòng)生成的方法存根
		EventQueue.invokeLater(() ->
        {
           JFrame frame = new MyFrame();
           frame.setTitle("DrawTest");
           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           frame.setVisible(true);
        });
		System.out.println("Hello World");
	}
	
	public void print(Object obj) {
		System.out.println(obj);
	}	
}
 
class MyFrame extends JFrame {
	private static final int DEFAULT_WIDTH = 400;
	private static final int DEFAULT_HEIGHT = 400;
	public MyFrame() {
		setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
		setLocation(100,200);
		setLayout(new FlowLayout());
		JButton but=new JButton("DEMOButton");
		but.addActionListener(event-> {
			print("action");
			
		});
		but.addMouseListener(new MouseAdapter(){
			public void mouseEntered(MouseEvent e) {
				print("enter");
			}
			public void mouseExited(MouseEvent e) {
				print("exit");
			}
			public void mouseClicked(MouseEvent e) {
				print("click");
			}
			
		});
		add(but);
	}
	public void print(Object obj) {
		System.out.println(obj);
	}
	public Dimension getPreferredSize() { return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT); }
}

運(yùn)行結(jié)果

小結(jié)一下

ActionListener先于MouseListener執(zhí)行

注:某教學(xué)視頻中在JAVA 1.6環(huán)境下ActionListener后于MouseListener執(zhí)行。

鼠標(biāo)監(jiān)聽(tīng)器和動(dòng)作監(jiān)聽(tīng)器區(qū)別和聯(lián)系

1.英文名:MouseListener和ActionListener

  • 同為接口,繼承同一個(gè)父類(lèi)EventListenr
  • 用時(shí)需定義類(lèi)實(shí)現(xiàn)接口

2.作用

  • MouseListener:可用于鼠標(biāo)的單擊、按下、釋放、進(jìn)入、離開(kāi),可以用于界面、組件類(lèi)
  • ActionListener:用于組件上面(JPanel不可以,JFrame也不可以,JLabel也不可以)
  • JButton可以,JTextField也可以

3.區(qū)別

  • MouseListener在功能上更加多樣化,在加的對(duì)象上也更有選擇性更廣泛;
  • ActionListener在功能上相對(duì)單一,只能適用于幾種簡(jiǎn)單的組件上且都為單擊事件。
  • ActiMouseListener有e.getActionCommand()方法,而ActionListener沒(méi)有,所以不能判斷

究竟按下或者釋放的是哪個(gè)按鈕,所以按鈕多的話,不能用MouseListener。

                 //MouseListener部分:
	         public void mousePressed(MouseEvent e) {
		     // TODO Auto-generated method stub
		     g.setColor(Color.blue);
		     draw(100,400,400,400,400,100,10);
		     draw(400,100,400,400,700,400,10);
		     draw(700,400,400,400,400,700,10);
		     draw(400,700,400,400,100,400,10);
	         }
			 //同樣的功能ActionListener部分:
			 if(e.getActionCommand().equals("謝賓斯基三角形")){
			 g.setColor(Color.blue);
			 draw(100,400,400,400,400,100,10);
			 draw(400,100,400,400,700,400,10);
			 draw(700,400,400,400,400,700,10);
			 draw(400,700,400,400,100,400,10);
			 }

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis使用接口映射的方法步驟

    MyBatis使用接口映射的方法步驟

    映射器是MyBatis中最核心的組件之一,本文主要介紹了MyBatis使用接口映射的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • mybatis批量update時(shí)報(bào)錯(cuò)multi-statement not allow的問(wèn)題

    mybatis批量update時(shí)報(bào)錯(cuò)multi-statement not allow的問(wèn)題

    這篇文章主要介紹了mybatis批量update時(shí)報(bào)錯(cuò)multi-statement not allow的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • java編寫(xiě)冒泡排序的完整示例

    java編寫(xiě)冒泡排序的完整示例

    這篇文章主要給大家介紹了關(guān)于java編寫(xiě)冒泡排序的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • mybatis批量新增、刪除、查詢和修改方式

    mybatis批量新增、刪除、查詢和修改方式

    這篇文章主要介紹了mybatis批量新增、刪除、查詢和修改方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 解析Java的Jackson庫(kù)中Streaming API的使用

    解析Java的Jackson庫(kù)中Streaming API的使用

    這篇文章主要介紹了解析Java的Jackson庫(kù)中Streaming API的使用,Jackson被用于Java對(duì)象和JSON的互相轉(zhuǎn)換,需要的朋友可以參考下
    2016-01-01
  • java代碼規(guī)范之不合理命名與重復(fù)代碼示例詳解

    java代碼規(guī)范之不合理命名與重復(fù)代碼示例詳解

    這篇文章主要為大家介紹了java代碼規(guī)范之不合理命名與重復(fù)代碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Java搜索與圖論之DFS和BFS算法詳解

    Java搜索與圖論之DFS和BFS算法詳解

    DFS指在進(jìn)行算法運(yùn)算時(shí),優(yōu)先將該路徑的當(dāng)前路徑執(zhí)行完畢,執(zhí)行完畢或失敗后向上回溯嘗試其他途徑。BFS指在進(jìn)行算法運(yùn)算時(shí),優(yōu)先將當(dāng)前路徑點(diǎn)的所有情況羅列出來(lái),然后根據(jù)羅列出來(lái)的情況羅列下一層。本文介紹了二者的實(shí)現(xiàn)與應(yīng)用,需要的可以參考一下
    2022-11-11
  • mybatis3.4.0不支持LocalDateTime的解決方法(No typehandler found for property time)

    mybatis3.4.0不支持LocalDateTime的解決方法(No typehandler f

    本文主要介紹了mybatis3.4.0不支持LocalDateTime的解決方法(No typehandler found for property time),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • springboot docker原理及項(xiàng)目構(gòu)建

    springboot docker原理及項(xiàng)目構(gòu)建

    這篇文章主要介紹了springboot docker原理及項(xiàng)目構(gòu)建,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 解讀@SelectProvider的使用方法

    解讀@SelectProvider的使用方法

    這篇文章主要介紹了@SelectProvider的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評(píng)論

乾安县| 电白县| 江阴市| 勐海县| 青田县| 贵溪市| 灵宝市| 偃师市| 鹤山市| 长汀县| 鹤岗市| 正宁县| 三原县| 延长县| 潜江市| 青浦区| 阿勒泰市| 木兰县| 舟山市| 昌图县| 乌兰县| 云梦县| 额济纳旗| 锦州市| 军事| 阿拉尔市| 彭山县| 高唐县| 广灵县| 平凉市| 海南省| 井陉县| 堆龙德庆县| 新绛县| 庐江县| 榆中县| 老河口市| 镇巴县| 同江市| 华容县| 察雅县|