Skip to content

Commit 893354c

Browse files
committed
Finished JavaFX-Circular-Scene-Transition Project
1 parent c0d5401 commit 893354c

1 file changed

Lines changed: 29 additions & 1 deletion

File tree

  • JavaFX Circular Scene Transition/src/main/java/com/genuinecoder/javafxcircularscenetransition/scene1

JavaFX Circular Scene Transition/src/main/java/com/genuinecoder/javafxcircularscenetransition/scene1/Scene1Controller.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
package com.genuinecoder.javafxcircularscenetransition.scene1;
22

33
import com.genuinecoder.javafxcircularscenetransition.HelloApplication;
4+
import javafx.animation.Interpolator;
5+
import javafx.animation.KeyFrame;
6+
import javafx.animation.KeyValue;
7+
import javafx.animation.Timeline;
48
import javafx.event.ActionEvent;
59
import javafx.fxml.FXML;
610
import javafx.fxml.FXMLLoader;
11+
import javafx.scene.layout.Pane;
712
import javafx.scene.layout.StackPane;
813
import javafx.scene.layout.VBox;
14+
import javafx.scene.shape.Circle;
15+
import javafx.util.Duration;
916

1017
public class Scene1Controller {
1118

@@ -17,7 +24,28 @@ public class Scene1Controller {
1724
public void loadScene2(ActionEvent actionEvent) {
1825
try {
1926
FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("scene2/scene2.fxml"));
20-
rootContainer.getScene().setRoot(fxmlLoader.load());
27+
Pane pane = fxmlLoader.load();
28+
rootContainer.getChildren().add(pane);
29+
30+
Circle circle = new Circle(50);
31+
pane.setShape(circle);
32+
circle.radiusProperty().addListener((observable, oldValue, newValue) -> {
33+
double size = newValue.doubleValue() * 2;
34+
pane.setMinSize(size, size);
35+
pane.setPrefSize(size, size);
36+
pane.setMaxSize(size, size);
37+
});
38+
39+
Timeline timeline = new Timeline();
40+
KeyValue keyValue = new KeyValue(circle.radiusProperty(), 400, Interpolator.EASE_OUT);
41+
KeyFrame keyFrame = new KeyFrame(Duration.seconds(0.5), keyValue);
42+
timeline.getKeyFrames().add(keyFrame);
43+
timeline.play();
44+
timeline.setOnFinished(event -> {
45+
rootContainer.getChildren().remove(contentContainer);
46+
pane.setShape(null);
47+
});
48+
2149
} catch (Exception exp) {
2250
exp.printStackTrace();
2351
}

0 commit comments

Comments
 (0)