zoukankan      html  css  js  c++  java
  • javafx KeyFrame

    import javafx.animation.Animation;
    import javafx.animation.KeyFrame;
    import javafx.animation.Timeline;
    import javafx.application.Application;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.paint.Color;
    import javafx.scene.shape.Circle;
    import javafx.stage.Stage;
    import javafx.util.Duration;
    
    public class Main extends Application {
        static int dx = 1;
        static int dy = 1;
    
        public static void main(String[] args) {
            Application.launch(args);
        }
    
        @Override
        public void start(final Stage primaryStage) {
            primaryStage.setTitle("Animation");
            Group root = new Group();
            Scene scene = new Scene(root, 400, 300, Color.WHITE);
    
            primaryStage.setScene(scene);
            addBouncyBall(scene); 
            primaryStage.show();
        }
        private void addBouncyBall(final Scene scene) {
            final Circle ball = new Circle(100, 100, 20);
    
            final Group root = (Group) scene.getRoot();
            root.getChildren().add(ball);
    
            Timeline tl = new Timeline();
            tl.setCycleCount(Animation.INDEFINITE);
            KeyFrame moveBall = new KeyFrame(Duration.seconds(.0200),
                    new EventHandler<ActionEvent>() {
    
                        public void handle(ActionEvent event) {
    
                            double xMin = ball.getBoundsInParent().getMinX();
                            double yMin = ball.getBoundsInParent().getMinY();
                            double xMax = ball.getBoundsInParent().getMaxX();
                            double yMax = ball.getBoundsInParent().getMaxY();
    
                            if (xMin < 0 || xMax > scene.getWidth()) {
                                dx = dx * -1;
                            }
                            if (yMin < 0 || yMax > scene.getHeight()) {
                                dy = dy * -1;
                            }
    
                            ball.setTranslateX(ball.getTranslateX() + dx);
                            ball.setTranslateY(ball.getTranslateY() + dy);
    
                        }
                    });
    
            tl.getKeyFrames().add(moveBall);
            tl.play();
        }
    }
  • 相关阅读:
    nginx编译安装
    使用scp命令,不同服务器之间拷备文件
    cpu负载过高排查与解决
    Docker安装
    sftp安装
    nginx登陆验证 [done]
    git常用命令
    python常见问题记录
    升级openssl
    rsync使用
  • 原文地址:https://www.cnblogs.com/rojas/p/4724007.html
Copyright © 2011-2022 走看看