如何将xy坐标的值传递给javafx中另一个类中的另一个方法

时间:2018-04-02 00:08:26

标签: javafx parameter-passing mouseevent pass-by-reference event-listener

我有一个窗格,它有一个setOnMouseMoved事件监听器,用于在鼠标在该窗格上移动时获取鼠标的坐标。

// getting mouse coordinates
private void setMouseMoved() {

    setOnMouseMoved((MouseEvent event) -> {

        double x = event.getX();
        double y = event.getY();

    });
}

有没有办法可以通过x& y值直接在另一个类中的另一个方法?或者创建一个方法将它们作为双精度返回到这个类中,然后传递给另一个类中的另一个方法?

1 个答案:

答案 0 :(得分:0)

执行此操作的最简单方法是保留对具有您希望在具有鼠标移动事件的类中的x和y中传递的方法的类的引用,然后调用该方法该类的引用并将x和y作为争论传递。

以下是一个例子。

假设我们有类DoSomething,它包含您想要从鼠标移动事件中调用的方法doSomethingWithXandY。

因此,使用一个将x和y作为参数的方法创建类:

     public class DoSomething{
     public void doSomethingWithXandY(double x,double y)
     {
      //put your code here that uses x and y
      System.out.println("x is " + x + " y is " + y);
     }
     }

现在在鼠标移动事件中,从类的引用中调用此方法,如下所示:

        setOnMouseMoved((MouseEvent event) -> {

    double x = event.getX();
    double y = event.getY();
    //create a instance of the class or use an existing one
    DoSomething something = new DoSomething();
    //now call this method
    something.doSomethingWithXandY(x,y);
});