欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

基本概念

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

開發(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 自動生成的方法存根
		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); }
}

運行結果

小結一下

ActionListener先于MouseListener執(zhí)行

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

鼠標監(jiān)聽器和動作監(jiān)聽器區(qū)別和聯系

1.英文名:MouseListener和ActionListener

  • 同為接口,繼承同一個父類EventListenr
  • 用時需定義類實現接口

2.作用

  • MouseListener:可用于鼠標的單擊、按下、釋放、進入、離開,可以用于界面、組件類
  • ActionListener:用于組件上面(JPanel不可以,JFrame也不可以,JLabel也不可以)
  • JButton可以,JTextField也可以

3.區(qū)別

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

究竟按下或者釋放的是哪個按鈕,所以按鈕多的話,不能用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);
			 }

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 學Java做項目需要學習的一些技能

    學Java做項目需要學習的一些技能

    這篇文章主要介紹了學Java做項目需要學習的一些技能,例如JavaSE、Servlet、JSP等,總結了他們中需要學習的東西,都是一些經驗總結,需要的朋友可以參考下
    2014-07-07
  • SpringBoot Mybatis 配置文件形式詳解

    SpringBoot Mybatis 配置文件形式詳解

    這篇文章主要介紹了SpringBoot Mybatis 配置文件形式詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • SpringBoot集成easy-rules規(guī)則引擎流程詳解

    SpringBoot集成easy-rules規(guī)則引擎流程詳解

    這篇文章主要介紹了SpringBoot集成easy-rules規(guī)則引擎流程,合理的使用規(guī)則引擎可以極大的減少代碼復雜度,提升代碼可維護性。業(yè)界知名的開源規(guī)則引擎有Drools,功能豐富,但也比較龐大
    2023-03-03
  • Ubuntu快速安裝jdk的教程

    Ubuntu快速安裝jdk的教程

    這篇文章主要為大家詳細介紹了Ubuntu快速安裝jdk的教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 基于java springboot + mybatis實現電影售票管理系統

    基于java springboot + mybatis實現電影售票管理系統

    這篇文章主要介紹了基于java springboot + mybatis實現的完整電影售票管理系統基于java springboot + mybatis,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Netty進階之EventExecutorGroup源碼詳解

    Netty進階之EventExecutorGroup源碼詳解

    這篇文章主要介紹了Netty進階之EventExecutorGroup源碼詳解,EventExecutorGroup繼承了JDK的ScheduledExecutroService,那么它就擁有了執(zhí)行定時任務,執(zhí)行提交的普通任務,需要的朋友可以參考下
    2023-11-11
  • IDEA創(chuàng)建Maven項目一直顯示正在加載的問題及解決

    IDEA創(chuàng)建Maven項目一直顯示正在加載的問題及解決

    這篇文章主要介紹了IDEA創(chuàng)建Maven項目一直顯示正在加載的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Hibernate一級緩存和二級緩存詳解

    Hibernate一級緩存和二級緩存詳解

    今天小編就為大家分享一篇關于Hibernate一級緩存和二級緩存詳解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Seata?AT模式前后鏡像是如何生成詳解

    Seata?AT模式前后鏡像是如何生成詳解

    這篇文章主要為大家介紹了Seata?AT模式前后鏡像是如何生成的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Java實現兩個隨機數組合并進行排序的方法

    Java實現兩個隨機數組合并進行排序的方法

    本文主要介紹了Java實現兩個隨機數組合并進行排序的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論