javafx利用时间轴动画,编程实现一段文本在屏幕上左右来回滚动
时间: 2023-11-30 21:03:14 浏览: 221
文字的左右滚动实现
以下是一个简单的JavaFX程序,它使用时间轴动画来实现一段文本在屏幕上左右来回滚动:
```java
import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.Duration;
public class RollingText extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
// 创建一个文本对象
Text text = new Text("Hello, JavaFX!");
// 设置文本字体和大小
text.setFont(new Font(30));
// 创建一个水平布局,将文本放在布局中心
HBox root = new HBox(text);
root.setAlignment(Pos.CENTER);
// 创建一个时间轴动画,将文本从左向右滚动
Timeline timeline = new Timeline(
new KeyFrame(Duration.ZERO, new KeyValue(text.translateXProperty(), -text.getLayoutBounds().getWidth())),
new KeyFrame(Duration.seconds(5), new KeyValue(text.translateXProperty(), primaryStage.getWidth()))
);
timeline.setCycleCount(Animation.INDEFINITE);
timeline.setAutoReverse(true);
// 创建场景并将布局添加到场景中
Scene scene = new Scene(root, 400, 100);
// 将场景添加到舞台,并显示舞台
primaryStage.setScene(scene);
primaryStage.show();
// 开始动画
timeline.play();
}
public static void main(String[] args) {
launch(args);
}
}
```
在这个程序中,我们创建了一个文本对象,并将它放在一个水平布局中心。然后,我们创建了一个时间轴动画,将文本从左向右滚动,然后再从右向左滚动。我们将动画设置为无限循环,并自动反向播放。最后,我们将布局添加到场景中,将场景添加到舞台,并开始动画。
阅读全文