/* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. */ package helloworld; import javafx.animation.Transition; import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.input.MouseEvent; import javafx.scene.paint.*; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; import javafx.util.Duration; /** * @author kcr */ public class HelloRectangle extends Application { @Override public void start(Stage stage) { stage.setTitle("Hello Rectangle"); Group root = new Group(); Scene scene = new Scene(root, 600, 450); scene.setFill(Color.LIGHTGREEN); final Rectangle rect = new Rectangle(); rect.setX(25); rect.setY(40); rect.setWidth(500); rect.setHeight(200); rect.setOnMousePressed(new EventHandler() { @Override public void handle(MouseEvent e) { System.out.println("Mouse Pressed:" + e); } }); Transition t = new Transition() { { setCycleDuration(Duration.seconds(10)); } @Override protected void interpolate(double d) { LinearGradient lg = LinearGradientBuilder.create(). startX(0).startY(0). endX(1).endY(1).proportional(true). stops( StopBuilder.create().offset(0).color(new Color(0.5 + 0.5*d, 0, 0, 1)).build(), StopBuilder.create().offset(0.2 + 0.3*d).color(new Color(0, 0.5 + 0.5*d, 0, 1)).build(), StopBuilder.create().offset(1).color(new Color(0, 0, 0.5 + 0.5*d, 1)).build() ) .build(); rect.setFill(lg); // rect.setFill(Color.RED); } }; t.setAutoReverse(true); t.setCycleCount(-1); t.play(); root.getChildren().add(rect); stage.setScene(scene); stage.show(); } /** * @param args the command line arguments */ public static void main(String[] args) { Application.launch(args); } }