gpt4 book ai didi

java - 如何让文字自动滚动不断循环呢?

转载 作者:行者123 更新时间:2023-12-01 12:48:16 25 4
gpt4 key购买 nike

我正在寻找一种使用 JavaFX 使某些文本行自动滚动连续循环的方法。这与credits-like scrolling非常相似。在下面这些问题中。它是工作站屏幕,而不是移动设备。文本是固定的,不是来自提要,所以我希望它能够流通...

一个简单的用例:您有 30 行文本,但任何时候只能看到 12 行。所以我想将文本向上滚动到屏幕上,并在底部稍作休息,然后文本环绕并继续滚动。

我以为我可以在底部添加文本并将其从顶部移开,但事实证明并不相同。使用向上滚动的视觉效果...实际上是规范的重要部分。所以我又回到了起点。

我更喜欢的一些事情是不需要销毁文本或重新加载。更喜欢指向当前文本框的顶部或其他内容,以便它环绕。否则就像以前一样,我需要从顶部删除文本并将文本放入底部。需要 JavaFX,不能将 Javascript 用于应用程序。你最好的击球是什么? 提前致谢

最佳答案

这是一些滚动文本

import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.Duration;

public class Scroll extends Application {

@Override
public void start(Stage primaryStage) {
VBox vbox = new VBox();
for (int i = 0; i < 30; i++)
vbox.getChildren().add(new Text("line " + i));
//add a copy of the first 12 lines that will be showing as wrapped
for (int i = 0; i < 12; i++)
vbox.getChildren().add(new Text("line " + i));

ScrollPane sp = new ScrollPane(vbox);
Scene scene = new Scene(sp, 300, 10*12);//guess height

primaryStage.setScene(scene);
primaryStage.show();
//resize to exactly 12 lines
double textHeight = vbox.getHeight() / vbox.getChildren().size();
primaryStage.setHeight(textHeight*12+primaryStage.getHeight()-scene.getHeight());

Timeline timeline = new Timeline();
timeline.setCycleCount(Timeline.INDEFINITE);
KeyValue kv = new KeyValue(sp.vvalueProperty(), sp.getVmax());
KeyFrame kf = new KeyFrame(Duration.millis(5000), kv);
timeline.getKeyFrames().addAll(kf);
timeline.play();
}

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

我意识到这不是你想要的。我尝试了一些技巧来拍摄 vbox 的图像并一遍又一遍地播放它,但除非你做得恰到好处,否则会出现一些卡顿。这只是为了满足只阅读一次文本的要求。你需要的是一个可以平滑滚动的循环结构,就像圆柱体一样。请参阅我的其他答案以获得一些乐趣。

关于java - 如何让文字自动滚动不断循环呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24472170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com