Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mouseDown事件对象_Java_Graphics_Event Handling - Fatal编程技术网

Java mouseDown事件对象

Java mouseDown事件对象,java,graphics,event-handling,Java,Graphics,Event Handling,当你使用这个方法的时候 public boolean mouseDown(Event e, int x, int y) 在Java中,事件对象做什么或用于什么?我试图写一个程序,涉及到有人点击一个矩形创建的 g.fillRect(horizontal position,vertical position,height,width); 我假定您使用事件处理来使用mousedown方法拾取矩形上的单击,但是如何才能做到这一点?请在回答中提供示例。我在谷歌上做了研究,但没有发现任何东西,即使是真正

当你使用这个方法的时候

public boolean mouseDown(Event e, int x, int y)
在Java中,事件对象做什么或用于什么?我试图写一个程序,涉及到有人点击一个矩形创建的

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

我假定您使用事件处理来使用mousedown方法拾取矩形上的单击,但是如何才能做到这一点?请在回答中提供示例。我在谷歌上做了研究,但没有发现任何东西,即使是真正特定的搜索。非常感谢您的帮助

事件对象包含如下信息:

  • xy事件坐标
  • 发生事件的目标组件
  • 事件发生时
  • 它还提供了许多其他信息
    注意:该方法已被弃用,取而代之的是ProcessMouseeEvent()。

    如您所问

    在Java中,事件对象做什么或用于什么?

    -首先存在
    事件源
    ,当事件源上发生任何操作时,
    事件对象
    被抛出到
    回调
    方法

    -
    回调
    方法是
    侦听器
    (接口)中的方法,该方法需要由实现此侦听器的
    类实现

    -当对事件源执行操作时,此回调方法中的语句将指定需要执行的操作。

    例如:

    假定

      Event Source - Button
      When Clicked - Event object is thrown at the call back method
      Call back method - actionPerformed(ActionEvent e) inside ActionListener.
    
    -在您的示例中
    当鼠标按钮按下时,会注意到x和y坐标。 然后在回调方法中抛出事件对象,该方法需要 实现此侦听器的类

    -最好使用
    mouseslistener接口的
    mousePressed
    方法

    请参阅此链接:


    鼠标向下是一个鼠标事件。您需要做的是向程序中添加一个事件侦听器,以便在单击鼠标时,事件处理程序调用一个方法。在该方法中,您希望查看鼠标的x、y位置是否在矩形内

    您需要实现MouseListener“实现MouseListener”

    //为MouseListener导入一个额外的类
    导入java.awt.event.*;
    公共类YourClassName扩展小程序实现MouseListener
    {
    int x=水平位置;
    int y=垂直位置;
    g、 fillRect(x,y,宽度,高度);
    addMouseListener(这个);
    //在实现MouseListener时,必须始终显示这些方法
    public void mouseClicked(MouseEvent MouseEvent){}
    公共无效mouseenterned(MouseEvent MouseEvent){}
    public void mouseepressed(MouseEvent MouseEvent){}
    公共无效MouseEvent(MouseEvent MouseEvent){}
    public void mouseExited(MouseEvent MouseEvent){}
    公共无效鼠标点击(MouseEvent MouseEvent){
    mouseX=mouseEvent.getX();
    mouseY=mouseEvent.getY();
    if(mouseX>x&&mouseY>y&&mouseX
    更多。。。

    你真的应该附加一个单独的而不是覆盖
    ProcessMouseeEvent
    …而
    mouseDown
    等都是JDK 1.0.2的遗物,直接修改
    ProcessMouseeEvent
    ,而friends是JDK 1.1的遗物。那么我怎么知道这个人是否点击了矩形?将矩形的坐标与偶数进行比较t、 x和event.yGiven a,您可以使用任何重载的
    contains
    方法…例如,
    rectangle.contains(event.getPoint())
    其中
    event
    是a。在没有a的情况下,您只能执行类似于…
    Point pt=event.getPoint()的操作;int x=pt.x;int y=pt.y;内部布尔值=x>=X1&&x=Y1&&y
    
    // 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 
             //
         }
    }