ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaFX分页中的自动幻灯片显示

2019-11-20 12:00:23  阅读:388  来源: 互联网

标签:slideshow javafx pagination java


最近,作为初学者,我一直在使用JavaFx,这给我留下了深刻的印象.目前,我一直在尝试将分页幻灯片设置为自动
每5秒钟向前移动一次幻灯片(如果到达最后一张幻灯片,则返回第一张幻灯片以继续).有人可以在这里指引我正确的方向吗?

    @FXML
public void slideshow(ActionEvent event) {
    // TODO Auto-generated method stub
    String[] photos = { "housestark.jpg", "housefrey.jpg", "housebar.jpg",
            "HouseBolton.jpg", "housegreyjoy.jpg", "houseaaryn.jpg",
            "houselannis.jpg", "housemart.jpg", "housereed.jpg",
            "housetully.jpg", "housetyrel.jpg", };
    Pagination p = new Pagination(photos.length);
    p.setPageFactory((Integer pageIndex) -> {
        return new ImageView(getClass().getResource(photos[pageIndex])
                .toExternalForm());
    });

    Stage stage = new Stage();
    stage.setScene(new Scene(p));
    stage.setX(1250);
    stage.setY(10);
    stage.setTitle("Slideshow");
    stage.setResizable(false);
    stage.show();
}

到目前为止,这是我的代码!任何人都可以提供帮助,我将不胜感激.

解决方法:

很简单您要做的就是创建一个每5秒运行一次的计时器,并在运行时移动页面索引.

public class SO extends Application {

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

    @Override
    public void start(Stage stage) {
        Pagination p = new Pagination(10);

        Timeline fiveSecondsWonder = new Timeline(new KeyFrame(Duration.seconds(5), event -> {
            int pos = (p.getCurrentPageIndex()+1) % p.getPageCount();
            p.setCurrentPageIndex(pos);
        }));
        fiveSecondsWonder.setCycleCount(Timeline.INDEFINITE);
        fiveSecondsWonder.play();

        stage.setScene(new Scene(p));
        stage.show();
    }
}

五个第二个奇迹来自这里:JavaFX periodic background task

标签:slideshow,javafx,pagination,java
来源: https://codeday.me/bug/20191120/2043978.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有