App下載

簡述Java中的事件監(jiān)聽機制

猿友 2021-07-16 15:59:56 瀏覽數(shù) (2972)
反饋

有沒有想過這樣的一些問題?為什么點擊界面,會有相應的反應?輸入指定內容,會出現(xiàn)相對應的內容?本文將通過 Java 來講解 Java 中的事件監(jiān)聽機制來解答這些問題,以下是詳情內容。

事件監(jiān)聽機制的定義

Java事件監(jiān)聽機制在圖形界面編程的時候應用的比較多。我們會時常對界面進行一系列的操作,比如在輸入框輸入內容、點擊登錄注冊按鈕等等,著一些操作都被稱之為事件。當進行這些操作的時候,程序就會采取相應的措施來相應這些事件。

1.事件源對象

    (1)什么內容可以成為事件源對象?

    只有容器組件和元素組件可以成為事件源對象。

    (2)怎么確定界面上誰是事件源對象?

    當你的動作發(fā)生在哪一個組件上,那么這個組件就是事件源對象。

2、事件監(jiān)聽方法

    (1)事件監(jiān)聽方法由事件源對象提供。

    (2)事件監(jiān)聽方法捕獲事件源對象上面的動作。如果有動作發(fā)生,則方法捕獲動作,收集源對象的信息和動作信息,然后把這些信息交給事件接口的對象進行處理。

3、事件接口(處理類)

    事件接口對象拿到事件監(jiān)聽方法提供的信息后,會根據(jù)這些信息,去調用相應的事件處理方法。


接下來我們通過一個簡單的實例代碼感受一下:

思路

    1、構建一個窗體,再裝上一個?start?按鈕。

    2、定義?LoginListener?事件處理類。這個類繼承了?ActionListener?動作事件接口,需要重寫接口里面的抽象方法。

    3、實例化?LoginListener?事件處理對象。

    4、給事件處理類對象添加動作監(jiān)聽方法,并指定事件處理類對象。

代碼實例:

//第一步就簡單地構造一個窗體
package Login20190318;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.JButton;
import javax.swing.JFrame;

//Draw類繼承JFrame類  相當于Draw類就是JFrame類  直接調用JFram類中的屬性和方法
public class Draw extends JFrame
{
	//入口主函數(shù)
	public void initUI()
	{
		this.setSize(1500,600);
		FlowLayout flowlayout=new FlowLayout(FlowLayout.CENTER,5,5);
		this.setLayout(flowlayout);
		JButton button=new JButton("Start");
		this.add(button);
		
		this.setVisible(true);
		
		//使窗體獲得繪圖板權限
		Graphics graphics=this.getGraphics();
		
		//實例化監(jiān)聽方法類  并傳入參數(shù)
		DrawLis drawlis=new DrawLis(graphics);
	
		//使按鈕button調用監(jiān)聽方法
		button.addActionListener(drawlis);
	}
	
	
	
	public static void main(String[] args) 
	{
		//實例化Draw類并調用入口函數(shù)
		Draw draw=new Draw();
		draw.initUI();
		
	}

}
//定義事件監(jiān)聽方法的類
package Login20190318;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.awt.Graphics;

//實現(xiàn)監(jiān)聽接口
public class DrawLis implements ActionListener
{

	private Graphics g;
	
	//構造方法用于傳參
	public DrawLis(Graphics g)
	{
		this.g=g;
	}
	
	//定義監(jiān)聽方法,畫一個橢圓
	public void actionPerformed(ActionEvent e)
	{
		Random random = new Random();
		int x=random.nextInt(1600);
		int y=random.nextInt(1600);
		g.fillOval(x,y,60,70);
	}
	
}

初始面板

初始面板

點擊事件后,面板上出現(xiàn)一個黑色的球。

點擊事件后


總結

以上就是Java中的事件監(jiān)聽機制簡要概述的全部內容,想要了解更多關于Java的知識內容,請關注W3Cschool以往的文章或者繼續(xù)瀏覽接下來的內容,請多多關注和支持我們。


0 人點贊