首页 > 解决方案 > JavaFX 11 Web 视图加载异常

问题描述

我一直在努力使用包含 WebView 的 FXML 来实现 JavaFX 应用程序。

但是,当运行这会导致 ClassNotFoundException:javafx.scene.web.WebView 导致 javafx.fxml.LoadException,但我对此感到困惑。

因此,我创建了一个简化的应用程序,如下所示。在此示例中控制器为空。如果有人能告诉我如何成功实现 WebView,将不胜感激。

主.java

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("wv.fxml"));
        primaryStage.setTitle("WebView Test");
        primaryStage.setScene(new Scene(root, 500, 500));
        primaryStage.show();
    }


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

wv.fxml

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

<?import javafx.scene.layout.FlowPane?>
<?import javafx.scene.web.WebView?>

<FlowPane fx:controller="sample.Controller"
          xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">
      <WebView fx:id="WV" prefWidth="200" prefHeight="200"></WebView>

</FlowPane>

模块信息.java

module WebViewTest {

    requires javafx.fxml;
    requires javafx.controls;

    opens sample;
}

标签: javafxfxmlfxmlloader

解决方案


看看你的模块信息,想知道为什么你没有 javafx.web 在那里。


推荐阅读