JavaFx - 更改游标不起作用

时间:2014-11-18 18:09:56

标签: javafx treeview cursor

我是新工作的javafx。当我在树视图中的节点之间进行更改时,这个想法是显示WAIT光标(此更改需要一些长操作)。

我正在尝试以下方法:

    // ACTION treeitem selection
    treeview.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem>() {

        @Override
        public void changed(ObservableValue<? extends TreeItem> paramObservableValue, final TreeItem oldValue,
                final TreeItem newValue) {


           // CURSOR CHANGE 
           tilepane.getScene().setCursor(Cursor.WAIT);


           Platform.runLater(new Runnable() {
                @Override
                public void run() {

                // SOME LONG OPERATION
                tilepane.getScene().setCursor(Cursor.DEFAULT);     

                }
            });

        }

    });

但是在执行日志操作时,光标不会改变。

(tilepane是我想要显示等待光标的窗格)

感谢。

1 个答案:

答案 0 :(得分:0)

  1. 长操作应该在GUI(JavaFX)线程中进行。对于这些操作,我们手头有TaskService类。
  2. Platform.runLater()不在后台线程中完成您的工作,而是在GUI线程的下一个场景脉冲上运行给定的Runnable。
  3. 因此,如果您选择使用任务进行长时间运行操作,您可以在一些方便的位置更改光标: