0
点赞
收藏
分享

微信扫一扫

Javafx实现滚动字幕

在 JavaFX 中实现滚动字幕可以通过使用 TextTimeline 类来创建动画效果。下面是一个简单的示例代码,展示如何在 JavaFX 应用程序中实现滚动字幕的效果。

完整示例代码

import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.Duration;

public class ScrollingTextApp extends Application {

    private static final String SCROLLING_TEXT = "欢迎使用 JavaFX 滚动字幕示例! 这是一个滚动的文本。";

    @Override
    public void start(Stage primaryStage) {
        Pane pane = new Pane();
        Text text = new Text(SCROLLING_TEXT);

        // 设置文本位置
        text.setLayoutX(800); // 初始位置(窗口外右侧)
        text.setLayoutY(50); // 垂直位置

        pane.getChildren().add(text);

        // 创建一个时间线动画
        Timeline timeline = new Timeline(
                new KeyFrame(Duration.seconds(0), e -> {
                    // 每帧更新文本位置
                    text.setLayoutX(text.getLayoutX() - 2); // 每帧移动2个像素
                    // 如果文本移出窗口,则重置位置
                    if (text.getLayoutX() < -text.getLayoutBounds().getWidth()) {
                        text.setLayoutX(800); // 重置为窗口右侧
                    }
                })
        );

        // 设置时间线每秒执行60次(60 FPS)
        timeline.setCycleCount(Animation.INDEFINITE);
        timeline.setRate(60);
        timeline.play(); // 开始动画

        Scene scene = new Scene(pane, 800, 100);
        primaryStage.setTitle("JavaFX 滚动字幕示例");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

代码说明

  1. 基本结构
  • 使用 Application 类创建 JavaFX 应用程序。
  • start 方法中设置舞台和场景。
  1. 滚动文本
  • 使用 Text 对象创建要滚动的文本。
  • 初始位置设置为窗口的右侧(text.setLayoutX(800))。
  1. 动画效果
  • 创建一个 Timeline 对象,每帧更新文本的位置。
  • KeyFrame 定义了在特定时间点执行的动作,这里每帧将文本向左移动 2 像素。
  • 如果文本移出窗口,则重置其位置,使其重新出现在窗口的右侧。
  1. 设置场景和舞台
  • 创建 Scene,设置大小为 800x100
  • 显示舞台。

运行代码

将上述代码复制到你的 Java 开发环境中(如 IntelliJ IDEA 或 Eclipse),并确保你的项目中包含 JavaFX 库。然后运行程序,你将看到滚动的字幕效果。

其他建议

  • 自定义滚动速度:你可以通过调整 text.setLayoutX(text.getLayoutX() - 2) 中的值来改变滚动速度。
  • 文本内容:修改 SCROLLING_TEXT 常量可以更改要显示的文本内容。
  • 样式:可以为 Text 设置字体、颜色和大小,以适应你的应用风格。
举报

相关推荐

0 条评论