程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java Applet 入門 第四天

Java Applet 入門 第四天

編輯:關於JAVA

鼠標和鍵盤事件處理函數 
所謂事件,就是指在系統中有某些我們所關心的事情(例如:鼠標移動了,用戶按下了某個按鍵……等)發生了,然後系統便通知我們去處理這些事情。這樣的概念在一般采用窗口用戶界面環境的操作系統中,是十分常見的。 
在Java中,所有的事件都定義在類Event(java.awt.Event)內,讀者有興趣的話,可以參考Java的API。 
1)鼠標事件。 
鼠標時間一般有: 
mouseDown:當鼠標的按鍵被用戶按下時,就會發生MOUSE_DOWN時間,這個時候系統便調用方法mouseDown對該事件進行處理。方法mouseDown的寫法為: 
public boolean mouseDown(Event e,int x,int y) 

      …… 

由上面可知,方法mouseDown有三個參數:e,x,y。e就是事件本身,我們把“事件”看成一個對象實體,只不過它的類是Event而已,同時,事件在使用上和一般的對象實體沒有差別。而x,y則是這個時間發生時的鼠標的坐標值。要注意的是它的方法返回值是boolean型的值,這點要注意!另外,由於有些機器的鼠標只有一個按鍵,考慮到Java的與平台無關性,因此,這個方法中,就沒有我們常見的右鍵的功能了。它不區分左右按鍵。  
mouseUp:與前面的相反,這個方法是鼠標放開時的處理函數了,對於使用方法,與mouseDown完全相同。這兒就不多說了! 
mouseMove:MOUSE_MOVE和MOUSE_DRAG都是由鼠標移動產生的事件,方法mouseMove就是用來處理MOUSE_MOVE事件的。方法為: 
public boolean mouseMove(Event evt,int x,int y) 

……  

所用到的參數和方法mouseDown和mouseUp的完全一樣。 
mouseDrag:從上面知道,這個方法當然是用來處理MOUSE_DRAG事件的。方法為: 
public boolean mouseDrag(Event e,int x,int y) 

…… 

mouseEnter:這個方法是用來處理MOUSE_ENTER事件的,當鼠標進入到小應用程序的窗口范圍時,就會發生MOUSE_ENTER事件。處理方法為 : 
public boolean(Event evt, int x,int y) 

…… 

所用到的參數和前面一樣,不多說了。 
mouseExit:這個方法是用來處理MOUSE_EXIT事件的。當鼠標從小應用程序窗口移出來的時候,就會發生MOUSE_EXIT事件了。處理方法為: 
public boolean (Event e,int x,int y) 

…… 
}  
好了,讓我們來看一看具體的例子:

2)鍵盤事件: 
和鼠標比起來,鍵盤產生的時間就簡單多了,一般說來,我們關心的就是用戶按下了什麼鍵,再處理就行了,而不必像鼠標那樣還具有移動的事件要處理。它的主要事件有: 
KEY_PRESS:按下鍵時產生; 
KEY_RELEASE:放開鍵盤按鍵的時候產生。處理它們方法方法分別為: 
public boolean keyDown(Event evt,int x,int y) 

…… 

public loolean keyUp(Event evt,int x,int y) 

…… 

參數中的evt還是表示事件本身的對象,而key就是那個被用戶按下或放開的案件。Java已經在類Event中,定義好一些表轉的按鍵值,如下: 
類變量代表的按鍵類變量代表的按鍵 
Event.Up方向鍵中的“上”鍵Event.F3“F3”鍵 
Event.DOWN方向鍵中的“下”鍵Event.F4“F4”鍵 
Event.LEFT方向鍵中的“左”鍵Event.F5“F5”鍵 
Event.RIGHT方向鍵中的“右”鍵Event.F6“F6”鍵 
Event.HOME“Home”鍵Event.F7“F7”鍵 
Event.END“End”鍵Event.F8“F8”鍵 
Event.PGUP“Page Up”鍵Event.F9“F9”鍵 
Event.PGDN“Page Down”鍵Event.F10“F10”鍵 
Event.F1“F1”鍵Event.F11“F11”鍵 
Event.F2“F2”鍵Event.F12“F12”鍵 


鼠標事件例子 1 


這個例子的源代碼如下: 
 import Java.applet.*; 
 import Java.awt.*; 
//前面的例子中說過了的,就不再說了。 ^_^ 

 public class Aa1 extends Applet 
 { 
  int cx=50; 
  int cy=50; 
 //定義鼠標的初始位置,也就是當你還沒有按下鼠標時的字符串將出現 
的位置。 
 public boolean mouseDown(Event e,int x,int y) 
//定義鼠標按下函數,這是一個布爾類型的函數,也就是只有真和假兩種 
狀況的函數。 
//參數e是鼠標按下狀態參數,當鼠標按下時,e值就為真,x,y是鼠標的 
位置參數。 
 { 
   cx=x; 
  cy=y; 
//重新定義字符串的位置參數,使字符串的位置為鼠標按下的位置。  
   repaint(); 
//重新繪制屏幕,使字符串位置更新。 
   return true; 
//返回函數,此函數為真。  
  } 

 public void paint(Graphics g) 
//paint函數,繪制屏幕函數,浏覽器從這兒開始知道怎麼繪制屏幕, 
繪制些什麼。 
//這兒是在cx,cy位置繪制一個字符串,使其顯示出來。 
 { 
   g.drawString("在哪兒按鼠標,我就在哪出現!",cx,cy); 
   } 

    這個程序,浏覽器從paint函數處執行,第一次調用時,cx,cy值是程序開始時定義的值,它然後才響應用戶在屏幕上按鼠標時的值,由mouseDown來執行,改變後,重新繪圖,這樣,就達到了開始的目的。 
鼠標事件例子2 


這個例子的源代碼如下: 
import Java.awt.*; 
import Java.applet.* ; 


public class Mouse extends Applet  

 String msg=""; 
//定義一條字符串變量,存儲要輸出的消息。 
 public boolean mouseEnter(Event e,int x,int y) 
 { 
  msg="你進來了,真討厭!拿開!拿開!!把鼠標拿開吧!"; 
  repaint();         //重新繪畫屏幕 
  return true;       //返回真的布爾值 
 } 
 public boolean  mouseExit(Event e,int x,int y) 
 { 
  msg="你把鼠標移開了,別走嘛!為什麼不把鼠標移進來呀?"; 
  repaint(); 
  return true; 
 } 
 public void paint(Graphics g) 
 { 
  g.drawString (msg,4,20);  //顯示消息 
 } 


鍵盤事件例子這個例子需要你先用鼠標在JavaApplet區域中點一下,然後就可以在鍵盤上面按鍵了,你的每一次按的什麼鍵,都可以在屏幕上面顯示出來,沒有騙你,試試看吧!這個例子的源代碼如下:import Java.awt.Event ; 
import Java.awt.Graphics ; 
import Java.applet.*; 


public class KeyStrike extends Applet   

 char PressKey=0; 
 int Outx=5,Outy=15;       //定義初始的輸出位置 
  
 public boolean keyDown(Event e, int key)//鍵盤處理方法 
 { 
  switch(key)                        //確定按下的鍵值 
  { 
  case Event.UP:Outy--;break;         //如果按下的是向上鍵則…… 
  case Event.DOWN:Outy++;break;       //如果按下的是向下鍵則…… 
  case Event.LEFT:Outx--;break;         //如果按下的是向左鍵則……
  case Event.RIGHT  :Outx++;break;       //如果按下的是向右鍵則…… 
  case Event.HOME :Outx=5;Outy=15;break;//如果按下的是向Home鍵則 
  case Event.END  :Outx=5;Outy=size().height -15;break; 
       /如果按下的是End鍵則…… 
  case Event.PGUP :Outy-=5;break;     //如果按下的是PageUp鍵則……
  case Event.PGDN :Outy+=15;break;   //如果按下的是Page Down鍵則 
  default:PressKey=(char)key;break;    //如果按下的不是以上鍵則…… 
  } 
  repaint(); 
  return true; 
 } 
 public void paint(Graphics g) 
 { 
  if(PressKey!=0) 
   g.drawString ("你按下了: "+PressKey+"  鍵",Outx,Outy); 
      //顯示按鍵信息! 
 }    

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved