❶ 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 什麼是事件事件是怎麼產生的
就是一個動作或指令或結果等,比如你單擊滑鼠的左鍵,按下回車鍵,敲進一個字元等都是一個事件。