Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Java - Jak projít v Timeline celé pole?

Otázka je, čo vlastne chceš dosiahnuť. S JavaFX nemám skúsenosti, ale ak sa má po každom kliknutí spustiť animácia s nasledujúcou farbou, tak si stav niekde musíš pamätať. To, čo máš, by mohlo fungovať. Inak ak chceš meniť stav v lambde, tak môžeš použiť wrapper, ktorý bude final, ako napr. AtomicInteger.

Ak chceš na jedno kliknutie prejsť všetky farby, tak v tom prípade to bude vyzerať nejako takto:

rectangle.setOnMouseClicked(mouseEvent -> {
    final var timeline = new Timeline();
    Arrays.stream(COLORS)
            .map(color -> new KeyFrame(Duration.millis(400), event -> { rectangle.setFill(color); }))
            .forEach(timeline.getKeyFrames()::add);
    timeline.setCycleCount(COLORS.length);
    timeline.play();
});

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny