Код
public class PixelLoop extends Application {
@Override
public void start(Stage primaryStage) {
int width = 1;
int random = ((int)Math.random()*400)+1;
// Create the Colors
Color white = Color.web("rgb(255,255,255)");
Color black = Color.web("rgb(0,0,0)");
//making the square
Rectangle square = new Rectangle(115,50,400,400);
square.setFill(black);
square.setStroke(white);
square.setStrokeWidth(width);
//Drawing the Circle and pixels
Circle circle = new Circle();
//Setting the properties of the circle
circle.setCenterX(315.0f); //moves the cirlce left or right
circle.setCenterY(250.0f); //moves the circle up and down
circle.setRadius(200.0f);
circle.setFill(black);
circle.setStroke(white);
circle.setStrokeWidth(width);
//Creating a Group object
Group Root = new Group(circle);
Pane pane = new Pane();
pane.getChildren().addAll(square,circle);
//setting properties of the pixels
for(int i = 0; i<1000; i++) {
Circle pixel = new Circle();
pixel.setCenterX((int)(Math.random()*400)+1);
pixel.setCenterY((int)(Math.random()*400)+1);
pixel.setRadius(1);
pixel.setFill(white);
pane.getChildren().add(pixel);
}
Scene scene = new Scene(pane,630,500);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) { Application.launch(args); }
}
В начале была проблема, что вы перезаписывали свой объект снова и снова. Вот почему был только один пиксель.
Как сказал @Tobias Brösamle, вам следует создавать новый объект каждый раз, когда вы проходите через цикл, а затем добавлять его на панель.
Если вы хотите, чтобы координаты негатива, попробуйте this