无法解析符号“javafx.scene.web”

Tro*_*wan 8 javafx webview

使用Intellij 2021.3.2,JavaFX版本:11.0.2+1。

我正在尝试将 JavaFX WebView 添加到我的应用程序中。我的导入语句无法编译:

import javafx.scene.web;  
Run Code Online (Sandbox Code Playgroud)

编译错误:

java:找不到符号符号:类Web位置:包javafx.scene

据我所知,JavaFX 版本 11 应该包含 .web 包。也许我必须安装一些特定的东西才能使用它?

jew*_*sea 6

这是一种方法:

\n
    \n
  1. 创建一个新的 JavaFX 项目
  2. \n
  3. 编辑pom.xml
  4. \n
  5. 添加对 的依赖项javafx-web。\n
      \n
    • 使用与该文件中其余 JavaFX 依赖项相同的版本。
    • \n
    • 点击 Maven 窗口中的刷新图标,将 Maven 项目与 IDE 项目重新同步。
    • \n
    \n
  6. \n
  7. 编辑module-info.java
  8. \n
  9. 添加行requires javafx.web;
  10. \n
\n

POM 摘录示例:

\n
\xe2\x80\xa6\n    <dependencies>\n        <dependency>\n            <groupId>org.openjfx</groupId>\n            <artifactId>javafx-controls</artifactId>\n            <version>20.0.2</version>\n        </dependency>\n        <dependency>\n            <groupId>org.openjfx</groupId>\n            <artifactId>javafx-fxml</artifactId>\n            <version>20.0.1</version>\n        </dependency>\n        <!-- https://mvnrepository.com/artifact/org.openjfx/javafx-web -->\n        <dependency>\n            <groupId>org.openjfx</groupId>\n            <artifactId>javafx-web</artifactId>\n            <version>20.0.2</version>\n        </dependency>\n\xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n

例子module-info.java

\n
module com.example.exfxwebview {\n    requires javafx.controls;\n    requires javafx.fxml;\n    requires javafx.web;\n\n\n    opens com.example.exfxwebview to javafx.fxml;\n    exports com.example.exfxwebview;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

您现在可以WebView在代码中使用。

\n
\n

或者,采用您现有的项目,遵循 kleopatra 链接的答案中的建议:

\n\n

javafx.web并在答案涉及添加模块的地方添加模块。

\n

答案类似于以下讨论该javafx.media模块的内容:

\n\n

我建议使用最新的 Java 和 JavaFX 稳定版本(目前为 20.0.2)进行开发,而不是 JavaFX 11,特别是如果您拥有配备Apple Silicon 的Mac (M1M2))的 Mac。只有 JavaFX 17.0.2+ 适用于这些 Mac。

\n