Ahoj
Jde o to, že musím vytvořit řídící proměnou, abych mohl v timeline projít postupně všechny prvky pole.
[Jen tak plácám]
Java není úplně můj šálek kávy, ani jsem příklad příliš neprocházel do detailu.
Možná napíši hloupost, ale proč to pole jednoduše neproiteruješ?
Něco jako:
@Override
public void start(Stage primaryStage) {
var rectangle = new Rectangle(200, 200, Color.BLACK);
var list_of_color = new Color[]{Color.PINK, Color.MAGENTA, Color.RED, Color.GREEN, Color.YELLOW, Color.TURQUOISE, Color.BLUE, Color.ORANGE};
rectangle.setOnMouseClicked((t) -> {
var timeline = new Timeline(new KeyFrame(Duration.millis(400), (event) -> {
for (Color color : list_of_color) {
rectangle.setFill(color);
}
}));
timeline.setCycleCount(list_of_color.length);
timeline.play();
});
primaryStage.setTitle("Example!");
primaryStage.setScene(new Scene(new Pane(rectangle)));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Pokud je nežádoucí, že prohledávání začne vždycky od prvního prvku, můžeš si odvodit vlastní třídu Color, která bude mít navíc pro tuto příležitost property
enum used -> true, false.
A to zohledníš při podmínce při použití.
[/Jen tak plácám]