JavaFX 8:监视器退出待机状态后的空白场景

ali*_*ean 6 java javafx java-8

我对JavaFX(jdk8,build 117)有一个奇怪的问题:一旦监视器从待机状态恢复,JavaFX阶段/场景就是空白.

我已经尝试最小化/调整窗口大小,但内容不再显示.我正在使用StackPane的简单场景.

    root = new StackPane();
    root.setBackground(null);
    scene = new Scene(root, Color.BLACK);
    stage.setScene(scene);

    ProgressIndicator piLoader = new ProgressIndicator();
    piLoader.setMaxSize(32d, 32d);
    root.getChildren().add(piLoader);

    stage.show();
Run Code Online (Sandbox Code Playgroud)

我已经尝试搜索已知错误或以前的报告但找不到任何错误.

sim*_*am7 2

JDK8 仍然在不断变化并被标记为早期访问版本,因此应该预料到会出现这样的问题。我刚刚在 JDK8 构建的 b121(Win8 64 位和 Ubuntu 13.10 64 位)上测试过它,看起来没问题。

将您的 JDK 版本更新到最新版本并查看是否可以解决您的问题。

更新:这是一个完整的库存标准示例,对我来说没有问题,显示器进入睡眠模式并返回,没有任何显示问题。“睡眠模式”是 Windows 8 为我提供的唯一选项,因此不是您所说的“待机”。您使用哪个操作系统?

package helloworld;

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

public class HelloWorld extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });

        StackPane root = new StackPane();
        root.setBackground(null);
        root.getChildren().add(btn);

        ProgressIndicator piLoader = new ProgressIndicator();
        piLoader.setMaxSize(32d, 32d);
        root.getChildren().add(piLoader);

        Scene scene = new Scene(root, 300, 250, Color.BLACK);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }

}
Run Code Online (Sandbox Code Playgroud)

  • 更新到 build 123 并再次尝试。这次的场景并不是完全空白。控件被重新绘制,只是背景是黑色的。调整窗口大小也可以解决这个问题。 (2认同)