在JavaFX

时间:2016-12-18 15:11:13

标签: javafx cursor wait setting

我知道这里有问题,但我找不到解决问题的方法。

public void markEpisodeAsWatched() {

        getStage().getScene().setCursor(Cursor.WAIT);
//      Platform.runLater(new Runnable() {
//        @Override
//        public void run() {
              try {
                showTaggedShows();
            } catch (SQLException e) {
                e.printStackTrace();
            }
              getStage().getScene().setCursor(Cursor.CROSSHAIR);
//        }
//      });



    }

方法markEpisodeAsWatched在单击按钮时调用,我无法在启动showTaggedShows方法之前找到如何更改光标,在此操作完成后,我的光标只会更改为CROSSHAIR。 正如你所看到的,我已经尝试过使用Platform.runLater(),但似乎我不知道如何实现它,它没有改变任何东西。

感谢您的帮助!

解决方案:感谢James_D,他指出了正确的答案

scene.setCursor(Cursor.WAIT);
        Task<Void> task = new Task<Void>() {
            @Override
            public Void call() {
                try {
                    showTaggedShows();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return null ;
            }
        };
        task.setOnSucceeded(e -> scene.setCursor(Cursor.CROSSHAIR));
        new Thread(task).start();

0 个答案:

没有答案