Tag: 选框

JavaFX – 水平选框文本

我试图实现类似于marquee的效果 – 长(在我的情况下)在横轴上移动的文本行。 我设法让它工作,但我不能称之为令人满意。 我的Controller类如下所示: @FXML private Text newsFeedText; (…) @Override public void initialize(URL url, ResourceBundle resourceBundle) { TranslateTransition transition = TranslateTransitionBuilder.create() .duration(new Duration(7500)) .node(newsFeedText) .interpolator(Interpolator.LINEAR) .cycleCount(Timeline.INDEFINITE) .build(); GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); int width = gd.getDisplayMode().getWidth(); transition.setFromX(width); transition.setToX(-width); transition.play(); } newsFeedText绑定到一些动态更新的文本源,因此它包含不同数量的文本。 我的代码至少有两个缺点: 转换从-width到+width ; width是监视器的分辨率宽度 如果窗口没有经过全面筛选,那么有时会看不到文本。 如果文本将更长并且newsFeedText宽度将大于监视器的分辨率宽度,则转换将“消失”一半(仍然在屏幕上)。 当前Duration不依赖于newsFeedText的宽度。 现在,它没有任何意义,但如果动态计算转换的fromX和toX ,那么它将导致各种速度的选框。 如何摆脱这些弊端?