Java FX:将窗格中不同对象的坐标与右键单击时鼠标的坐标进行比较

时间:2015-04-06 22:17:43

标签: java javafx

我不知道如何比较窗格上的圆形对象的所有x和y与鼠标的对象。我正在努力的问题要求我设置它,以便鼠标的二次点击删除它放在它上面的点,我想我可以通过比较圆坐标和鼠标坐标的所有距离来做到这一点(使用距离公式)到圆的辐射。如果其中一个距离小于辐射,我将删除该圆。问题是我不知道如何调用窗格上的所有点,以便我可以比较它们。这是我到目前为止的代码,可以让您更好地理解点的设置方式。

import javafx.scene.paint.Color;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

public class Homework6 extends Application {

@Override // Override the start method in the Application class
public void start(Stage primaryStage) {
    // Create a pane and set its properties
    Pane pane = new Pane();
    //Circle circle1 = new Circle(7);
    Circle[] circles = new Circle[0];


    pane.setOnMouseClicked(e -> {
        switch (e.getButton()) {

            case PRIMARY:
                Circle circle1 = new Circle(7);
                circle1.setCenterX(e.getX());
                circle1.setCenterY(e.getY());
                pane.getChildren().add(circle1);
                circle1.setFill(Color.WHITE);
                circle1.setStroke(Color.BLACK);


            case SECONDARY:



        }
    });

    // Create a scene and place the pane in the stage
    Scene scene = new Scene(pane);
    primaryStage.setTitle("KeyEventDemo"); // Set the stage title
    primaryStage.setScene(scene); // Place the scene in the stage
    primaryStage.show(); // Display the stage

    pane.requestFocus(); // text is focused to receive key input
}

public static void main(String[] args) {
    launch(args);
}

}

1 个答案:

答案 0 :(得分:1)

无需进行任何计算!方法evt.getTarget()应该已经返回已点击的圈子。

查看Oracle's JavaFX tutorials以了解如何处理事件。