为什么在JavaFX中场景切换后光标重置为默认值?

时间:2015-10-28 19:25:23

标签: javafx javafx-8

我知道我可以使用Scene.setCursor方法为整个场景设置光标类型。但是如果我将场景换成另一个场景,光标总是会重置为默认值 - 忽略在新场景上设置的光标。这是测试案例,在XFCE和XMonad中进行了测试:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Cursor;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HideCursor extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        StackPane root = new StackPane();
        root.setStyle("-fx-background-color: green");
        Scene scene = new Scene(root, 600, 600);
        scene.setCursor(Cursor.MOVE);

        StackPane root2 = new StackPane();
        root2.setStyle("-fx-background-color: blue");
        Scene scene2 = new Scene(root2, 600, 600);
        scene2.setCursor(Cursor.MOVE);

        primaryStage.setScene(scene);

        Button switchScene = new Button("switch");
        root.getChildren().add(switchScene);
        switchScene.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                primaryStage.setScene(scene2);
            }
        });

        primaryStage.show();
    }
}

有趣的是,在Windows 7中它按预期工作。我做错了什么?

0 个答案:

没有答案