gpt4 book ai didi

Java FX : comparing the coordinates of different objects in a pane to the coordinates of the mouse when right clicked

转载 作者:行者123 更新时间:2023-12-01 11:41:35 28 4
gpt4 key购买 nike

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

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);
}

}

最佳答案

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

看看Oracle's JavaFX tutorials学习如何处理事件。

关于Java FX : comparing the coordinates of different objects in a pane to the coordinates of the mouse when right clicked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29480590/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com