当我在透明窗口和窗口中移动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();
}