2016-05-22 13 views
0

Ich möchte den Radius ändern, wenn ich auf einen Kreis klicke. Alle Kreise in der Gruppe "Kreise".Maus Ereignisbehandlungsgruppe von Kreisen (JavaFX)

Wie kann ich den "circle1" Radius in a für jede Zeit einstellen?

 for (Node circle1: circles.getChildren()) { 
      if (circle1.getTranslateX() != circle.getTranslateX()) { 

       circle.setRadius(60); 
       //circle1.setRadius(40); <- FAIL 

      } 

vollständige Code

Group root = new Group(); 
    Scene scene = new Scene(root, 800, 600, Color.web("#2E3436")); 
    primaryStage.setScene(scene); 

    Group circles = new Group(); 
    for (int i = 0; i < 2; i++) { 
     Circle circle = new Circle(40, Color.web("#2E3436", 0.05)); 
     circle.setStrokeType(StrokeType.OUTSIDE); 
     circle.setStroke(Color.web("#0086FF", 0.14)); 
     circle.setStrokeWidth(4); 
     circle.setTranslateX(random() * 800); 
     circle.setTranslateY(random() * 600); 
     circle.addEventHandler(MouseEvent.MOUSE_CLICKED , (Event event) -> { 
      for (Node circle1: circles.getChildren()) { 
       if (circle1.getTranslateX() != circle.getTranslateX()) { 

        circle.setRadius(60); 
        //circle1.setRadius(40); 

       } 
      } 
     }); 
     circles.getChildren().add(circle); 
    } 
    root.getChildren().add(circles); 
    circles.setEffect(new BoxBlur(2, 2, 1)); 

Antwort

0

Werfen Sie Ihre circle1 ein Kreis und nicht nur ein Knoten zu sein.

+0

Wie kann ich den circle1 zu einem Kreis umwandeln? 'for (Kreis circle1: circles.getChildren()) {' funktioniert nicht. – moiko89

+0

((Kreis) circle1) .setRadius (40); – mipa

Verwandte Themen