2012-07-31 73 views
1

當您使用方法的Java mouseDown事件對象

public boolean mouseDown(Event e, int x, int y) 
在Java中

,什麼事件對象做或者用的是什麼呢?我想寫涉及有人點擊過

g.fillRect(horizontal position,vertical position,height,width); 

創建我相信你使用事件處理回暖與鼠標按下法矩形點擊矩形的程序,但你怎麼能這樣做呢?請在答案中提供示例。我在Google上做了我的研究,甚至沒有發現任何東西,甚至沒有找到具體的搜索。非常感謝!

回答

2

鼠標按下一個鼠標事件。你需要做的是爲你的程序添加一個事件監聽器,所以當點擊鼠標時,事件處理器會調用一個方法。在此方法中,您想查看鼠標的x,y位置是否在矩形內。

您需要實現的MouseListener 「實現的MouseListener」

// import an extra class for the MouseListener 
import java.awt.event.*; 

public class YourClassName extends Applet implements MouseListener 
{ 
    int x = horizontal position; 
    int y = vertical position; 
    g.fillRect(x,y,width,height); 
    addMouseListener(this); 

    // These methods always have to present when you implement MouseListener 
    public void mouseClicked (MouseEvent mouseEvent) {} 
    public void mouseEntered (MouseEvent mouseEvent) {} 
    public void mousePressed (MouseEvent mouseEvent) {} 
    public void mouseReleased (MouseEvent mouseEvent) {} 
    public void mouseExited (MouseEvent mouseEvent) {} 

    public void mouseClicked (MouseEvent mouseEvent) { 
    mouseX = mouseEvent.getX(); 
    mouseY = mouseEvent.getY(); 
    if(mouseX > x && mouseY > y && mouseX < x+width && mouseY < y+height){ 
     // 
     // do whatever 
     // 
    } 
} 

更多... http://docs.oracle.com/javase/6/docs/api/java/awt/event/MouseListener.html

+0

非常感謝球員:) – imulsion 2012-08-01 12:23:34

2

的事件對象包含像

  1. X的Y信息座標事件,
  2. 目標部件在其上該事件發生
  3. 偶數發生了

它也提供了很多其他信息。
注意:該方法已棄用,用於processMouseEvent()。

+0

你真的應該另附[MouseListener的(http://docs.oracle.com /javase/7/docs/api/java/awt/event/MouseListener.html),而不是重寫'processMouseEvent' ... while'mouseDown'等人。是來自JDK 1.0.2的遺留物,直接修改'processMouseEvent'和朋友是JDK 1.1的遺物。 – oldrinb 2012-07-31 16:58:01

+0

那麼我怎麼知道這個人是否點擊矩形? – imulsion 2012-07-31 17:00:10

+0

將矩形的座標與event.x和event.y進行比較 – 2012-07-31 17:00:54

0

正如你問這個

in Java, what does the Event object do or what is it used for?

-首先,有Event Source,當任何操作發生的位置在事件源,Event Object被拋向了call back方法

-Call Back方法是Listener(接口)內的方法,該方法是需要由實現該偵聽器Class來實現

-此回調方法中的語句規定當事件源完成操作時需要做什麼。

如:

假設

Event Source - Button 
    When Clicked - Event object is thrown at the call back method 
    Call back method - actionPerformed(ActionEvent e) inside ActionListener. 

-您的例子當鼠標按鈕下降,x和y座標被注意到。 然後事件對象將其拋出回調方法,這需要由實現此偵聽器的 類來處理。

-它更好使用mousePressed方法MouseListener Interface

請參閱此鏈接:

http://docs.oracle.com/javase/6/docs/api/java/awt/event/MouseListener.html#mousePressed%28java.awt.event.MouseEvent%29