2015-04-06 2 views
0

Я не знаю, как сравнить все объекты x и y объектов круга на панели с мышью. Проблема Im, работающая над мной, просит меня установить ее таким образом, чтобы вторичный щелчок мыши удалял точку, когда она помещалась на нее, я полагаю, что могу это сделать, сравнивая все расстояния между координатами окружностей и координатами мыши (используя формулу расстояния) к радиусу окружностей. Если одно из расстояний меньше, чем излучение, я бы удалил этот круг. Проблема в том, что я не знаю, как вызвать все точки на панели, чтобы я мог их сравнить. Это код, который я до сих пор дал вам, чтобы лучше понять, как настроены точки.Java FX: сравнение координат разных объектов в панели с координатами мыши при нажатии правой кнопкой мыши

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

Нет необходимости делать какие-либо вычисления! Метод evt.getTarget() должен уже вернуть круг, который был нажат.

Посмотрите на Oracle's JavaFX tutorials, чтобы узнать, как обрабатывать события.

+0

Я никогда не использовал это раньше и не знаю, как это работает – Meg

+0

О чем вы не знаете? Просто позвоните getTarget на событие, чтобы получить круг под указателем мыши! – isnot2bad

+0

oh wow спасибо! Я даже не знал, что этот метод существует – Meg

Смежные вопросы