【问题标题】:after restore from minimize WebView become disabled in javafx从最小化 WebView 恢复后在 javafx 中被禁用
【发布时间】:2017-05-11 09:33:40
【问题描述】:

我的问题是当我从 Windows 任务栏恢复最小化的 javafx 应用程序时,WebView 被禁用。

在调整阶段后它变为启用。

主java代码:

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            AnchorPane root = new AnchorPane();
            FXMLLoader loader = new FXMLLoader(getClass().getResource("Browser.fxml"));
            root = loader.load();
            Scene scene = new Scene(root);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Shivam Jewels ERP");
            primaryStage.setMaximized(true);
            primaryStage.show();
            primaryStage.iconifiedProperty().addListener(new ChangeListener<Boolean>() {

                @Override
                public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
                    if (t1) {
                        System.out.println("minimized:");
                    }
                }
            });
            primaryStage.maximizedProperty().addListener(new ChangeListener<Boolean>() {

                @Override
                public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
                    if (newValue) {
                        System.out.println("maximized:");
                    }
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

我的 JavaFX 代码是:

public class BrowserController implements Initializable {
    @FXML
    private WebView browser;
    @FXML
    private GridPane grdPn;

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        final WebEngine webEngine = browser.getEngine();
        browser.getEngine().setUserStyleSheetLocation(getClass().getResource("application.css").toExternalForm());
        browser.setContextMenuEnabled(false);
        System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
        webEngine.load("http://192.168.2.6:4200");
    }

}

这是我的 CSS 代码:

 ::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    -webkit-border-radius: 10px;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    -webkit-border-radius: 10px;
    border-radius: 10px;
    background: rgba(0,0,0,0.5); 
}
 ::-webkit-scrollbar-thumb:window-inactive {
    background: rgba(0,0,0,0.1);
}

这是我的 FXML 代码:

 <?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.web.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane prefHeight="382.0" prefWidth="353.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.BrowserController">
   <children>
      <GridPane fx:id="grdPn" layoutX="57.0" layoutY="135.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
        <columnConstraints>
          <ColumnConstraints hgrow="SOMETIMES" />
        </columnConstraints>
        <rowConstraints>
          <RowConstraints fillHeight="false" valignment="CENTER" vgrow="SOMETIMES" />
          <RowConstraints vgrow="SOMETIMES" />
        </rowConstraints>
         <children>
            <WebView fx:id="browser" minHeight="-1.0" minWidth="-1.0" prefHeight="-1.0" prefWidth="-1.0" GridPane.halignment="CENTER" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1" GridPane.valignment="CENTER" GridPane.vgrow="ALWAYS" />
         </children>
      </GridPane>
   </children>`enter code here`
</AnchorPane>

【问题讨论】:

  • 这段代码对我来说很好用。可以提供fxml和css文件吗?
  • 感谢您的回复,详情请参阅我的最新更新。

标签: javafx webview javafx-2 javafx-8 javafx-webengine


【解决方案1】:

这实际上是多次报告的JDK错误hereherehere。您描述的行为发生在satge 最大化时。

这个错误计划在 JDK9 中修复,但根据this 也将在 JDK8u122 中修复:

已批准将 8u122 向后移植到 8u-dev。

JDK 8u122 is planned 将于 2017 年 1 月发布,所以不久我们就可以使用它,但现在您可以从 JDK 8u122 early access page 下载和使用早期访问版本。

我自己下载并测试了代码,幸运的是问题不再存在。

【讨论】:

  • 更改 java 版本后,它对我有用。谢谢
  • 这似乎仅在 Windows 10 上再次发生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 2014-04-10
  • 2022-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多