導航:首頁 > 編程語言 > java定義事件

java定義事件

發布時間:2024-07-10 12:38:43

java 自定義事件的觸發及監聽

JAVA事件響應機制

1,先自定義一個事件

public class MyEvent extends java.util.EventObject{
public MyEvent(Object source)
{
super(source);
}
}

2,再自定義一個監聽器

public class MyListener implements java.util.EventListener{
//這里是當事件發生後的響應過程
public void EventActivated(MyEvent me)
{
System.out.println("事件已經被觸發");
}
}

3,以下這個類為觸發事件的事件源

public class MyObject {
private Vector vectorListeners=new Vector();

public synchronized void addMyListener(MyListener ml)
{
vectorListeners.addElement(ml);
}

public synchronized void removeMyListener(MyListener ml)
{
vectorListeners.removeElement(ml);
}

protected void activateMyEvent()
{
Vector tempVector=null;

MyEvent e=new MyEvent(this);

synchronized(this)
{
tempVector=(Vector)vectorListeners.clone();

for(int i=0;i<tempVector.size();i++)
{
MyListener ml=(MyListener)tempVector.elementAt(i);
ml.EventActivated(e);
}
}

}

//定義一個公用方法用於觸發事件
public void test()
{
activateMyEvent();
}
}

4,測試類

public class Test {

public static void main(String[] args)
{
MyObject mo=new MyObject();

//注冊該事件
mo.addMyListener(new MyListener());

//觸發該事件
mo.test();
}
}

❷ java什麼是事件什麼是事件源

常見的事件包括 移動滑鼠 , 單雙擊滑鼠各個按鈕 ,單擊按鈕 ,在文本欄位輸入 ,在菜單中選擇菜單項 ,在組合框中選擇、單選和多選 ,拖動滾動條 ,關閉窗口.........
事件源 與用戶進行交互的GUI組件,表示事件來自於哪個組件或對象
比如要對按鈕被按下這個事件編寫處理程序,按鈕就是事件源

❸ 用java寫一個單擊滑鼠事件

使用組件的paint函數用於繪圖, 使用MouseListener來響應滑鼠的點擊

效果圖

importjava.awt.Color;
importjava.awt.Graphics;
importjava.awt.event.*;
importjavax.swing.*;

{

publicDemoWin(){
MyPanelmp=newMyPanel();
mp.addMouseListener(mp);
add(mp);
//窗口屬性設置
setTitle("Demo");//標題
setSize(300,280);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//窗口點擊關閉時,退出程序
}

publicstaticvoidmain(String[]args){
DemoWinwin=newDemoWin();//創建窗口
win.setVisible(true);//顯示窗口
}

{
inttimes;//記錄點擊的次數
intx;//記錄滑鼠X軸的位置
inty;//記錄滑鼠Y軸的位置

@Override
publicvoidpaint(Graphicsg){
super.paint(g);
if(times==0){
g.setColor(Color.BLUE);//顏色
g.fillOval(150,150,50,50);//150,150代表位置50,50代表寬高
}elseif(times==1){
g.setColor(Color.RED);
g.fillRect(150,150,50,50);
}else{
g.setColor(Color.RED);
g.fillRect(x,y,50,50);
}
repaint();
}

publicvoidmouseClicked(MouseEvente){
//if(e.getButton()==MouseEvent.BUTTON1){//單擊左鍵時有效..
//times++;//記錄點擊的次數
//x=e.getX();
//y=e.getY();
//}
}

publicvoidmousePressed(MouseEvente){//滑鼠按下就有效
times++;//記錄點擊的次數
x=e.getX();
y=e.getY();
}

publicvoidmouseReleased(MouseEvente){//滑鼠釋放
}

publicvoidmouseEntered(MouseEvente){//滑鼠移入
}

publicvoidmouseExited(MouseEvente){//滑鼠移出
}

}
}

❹ java中什麼是事件源,事件的處理過程是什麼

在java的圖形界面開發中,要讓圖形界面接收到用戶的操作,就要給各個組件添加事件處理機制。

事件 : 為了實現用戶對圖形界面組件的操作,定義了一些事件

滑鼠事件:單擊,雙擊,滾輪等....

鍵盤事件 按下鍵盤,松開按鍵等...

焦點事件 :焦點獲得 ,焦點失去...

窗口事件: 窗口打開,窗口關閉等....


事件源: 發聲事件的場所. 比如按鈕被點擊,那麼事件源就是按鈕

文本框獲得焦點. 那麼事件源就是文本框

窗口被關閉,那麼事件源就是窗口


事件源-----產生----->事件------>被事件監聽器發現------>進入事件處理代碼

importjava.awt.Frame;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
{//窗口就是事件源
publicDemoAction(){
this.setTitle("窗口關閉");
this.setLocation(400,200);
this.setSize(360,280);
//給窗口綁定一個事件監聽器
this.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvente){//事件WindowEvent
System.exit(0);//關閉窗口事件,那麼退出jvm
}
});
this.setVisible(true);
}

publicstaticvoidmain(String[]args){
newDemoAction();
}
}

❺ java自定義事件,線程a如何每一秒鍾觸發一個事件,然後另一個線程b監聽之,並作出反應

線程a是作為事件源,那麼線程a這個類就必須提供一個可以增加監聽器的方法,就像GUI編程中的addActionListener這個樣的方法。線程a這個類裡面是有一個專門存放監聽器的一個容器,例如是list。然後你 增加監聽器的方法就是把監聽器放進這個容器裡面。你用一個監聽器去監聽一個事件的發生,就可以在線程a這個類中,寫一個產生事件的一段代碼,然後每當產生一個事件之後,去遍歷list,去調用監聽器的對於這個事件的處理方法,這樣子就可以了。這應該就是java中的事件模式。

❻ JAVA 什麼是事件事件是怎麼產生的

就是一個動作或指令或結果等,比如你單擊滑鼠的左鍵,按下回車鍵,敲進一個字元等都是一個事件。

閱讀全文

與java定義事件相關的資料

熱點內容
數字簽名中報文加密方式 瀏覽:481
解壓包變成記事本格式了 瀏覽:285
安卓編程怎麼復制文本 瀏覽:818
雲開通伺服器 瀏覽:387
python編程集合降序 瀏覽:281
山西抖音小程序源碼 瀏覽:698
方舟編譯器到底什麼原理 瀏覽:641
演算法概率與人工干預 瀏覽:671
軟通動力android 瀏覽:18
linuxwireshark命令 瀏覽:195
php播放器插件 瀏覽:950
如何把python寫的程序導入手機 瀏覽:25
mysql中查詢系統變數的命令是什麼 瀏覽:142
尚恩解壓圖片 瀏覽:554
新手程序員學那個語言接私活 瀏覽:19
疏解壓力同義詞 瀏覽:79
如何使用阿里雲網路伺服器 瀏覽:102
nas伺服器上怎麼創建文件 瀏覽:851
空調壓縮機需要擋雨嗎 瀏覽:436
數學分析第四版pdf 瀏覽:846