導航:首頁 > 編程語言 > 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定義事件相關的資料

熱點內容
viper4android安卓60 瀏覽:485
java軟體源碼 瀏覽:159
空氣壓縮機的類型 瀏覽:352
centos圖形命令行界面切換 瀏覽:237
新京報新聞APP什麼時候有的 瀏覽:818
華為手機文件夾重命名空白 瀏覽:742
通俗理解螞蟻演算法 瀏覽:555
俠盜獵車手怎麼注冊伺服器 瀏覽:341
去商場吃飯預約什麼app 瀏覽:776
nginx不能解析php 瀏覽:135
安卓系統如何轉換中文 瀏覽:316
小米手機用什麼下載非官方app 瀏覽:760
linux修改readonly 瀏覽:32
演算法時代我們能做什麼 瀏覽:928
牛津英語搭配詞典pdf 瀏覽:284
慧連a6怎麼連接安卓 瀏覽:235
python使用什麼編譯器最好 瀏覽:52
小程序編譯藍屏 瀏覽:947
程序員賽車的gif 瀏覽:413
購買新車能用到什麼app 瀏覽:775