transparant窗口上的JavaFX移动对象25%cpu使用率

时间:2017-11-26 20:57:27

标签: java performance canvas javafx drawing

当我在透明窗口和窗口中移动javafx中的简单圆圈时,我的CPU使用率超过20%。 但是,当我禁用Transparant窗口时,它只使用2%的CPU使用率。

首先,我做错了所以我找到了一个example,它在屏幕上移动一个球并使其全屏和透明,但它也使用了30%的cpu。 现在我不知道有人知道我做错了什么吗? 这是我的代码:

 @Override
public void start(Stage stage) {
    GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
    int w = gd.getDisplayMode().getWidth();  // fullscreen
    int h = gd.getDisplayMode().getHeight(); // fullscreen

    Pane canvas = new Pane();
    Scene scene = new Scene(canvas, w, h);
    Circle ball = new Circle(10, Color.RED);
    ball.relocate(0, 10);

    stage.initStyle(TRANSPARENT); // added this line for transparancy 
    scene.setFill(null); // added this line for transparancy 

    canvas.getChildren().add(ball);

    stage.setTitle("Moving Ball");
    stage.setScene(scene);
    stage.show();

    Bounds bounds = canvas.getBoundsInLocal();
    Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(3),
            new KeyValue(ball.layoutXProperty(), bounds.getMaxX() - ball.getRadius())));
    timeline.setCycleCount(Animation.INDEFINITE);
    timeline.play();
}

0 个答案:

没有答案