当前位置: 首页 > 知识库问答 >
问题:

JavaFX WebView使用FXML显示空页面

端木兴国
2023-03-14

我试图在JavaFX WebView组件中显示一个网站,但它只呈现一个空白页面。我已按如下方式设置了所有内容:

主控制器。Java语言

public class MainController extends Application
{
    private Stage primaryStage;
    private Pane pane;

    @Override
    public void start(Stage primaryStage)
    {
        // ... Some proxy config here ...
        this.primaryStage = primaryStage;
        this.primaryStage.setTitle("Desmon");
        initRootLayout();
    }

    public void initRootLayout()
    {
        try
        {
            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(MainController.class.getResource("../view/Main.fxml"));
            pane = (Pane) loader.load();
            Scene scene = new Scene(pane);
            primaryStage.setScene(scene);
            primaryStage.show();
            MainViewController controller = loader.getController();
            controller.setMain(this);
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }

    public Stage getPrimaryStage()
    {
        return primaryStage;
    }

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

MainViewController.java

public class MainViewController
{
    @FXML
    private WebView webTEA;

    private MainController main;

    public MainViewController()
    {

    }

    @FXML
    private void initialize()
    {
        webTEA = new WebView();
        WebEngine we = webTEA.getEngine();
        we.load("http://this/is/my/url.php");
    }

    public void setMain(MainController main)
    {
        this.main = main;
    }
}

Main.fxml

<Pane minHeight="500.0" minWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.MainViewController">

<children>
    <WebView fx:id="webTEA" layoutX="14.0" layoutY="14.0" prefHeight="417.0" prefWidth="570.0" />
</children>

正如你们所见,我还用系统设置了一些代理设置。setProperty()。我也在没有特定代理设置的情况下尝试了它-我认为这不是问题所在。

我不知道我做错了什么。如果我启动应用程序,我可以看到WebView组件,但没有内容。我只能右键单击并在关联菜单中看到“重新加载”项。

提前谢谢。

共有1个答案

景帅
2023-03-14

您正在创建一个新的WebView,而不是使用FXMLLoader创建和注入的。只需删除

webTEA = new WebView();

从初始化方法使用现有的网络视图。否则,您将初始化一个从未添加到场景图中的新WebView实例。

 类似资料:
  • 我一直试图使用FXML在JavaFX应用程序中显示我的图像,但没有成功。我的代码: 没有错误,但我的图像没有显示。我想图像已加载,但未显示。 这可能吗?我怎么查?如果是的话,不应该有一个错误给它吗? 事实上,即使我给出了一个不正确的名称,也没有运行时错误。也许没上子弹? 我也试过加载不同的图像和改变尺寸,没有任何效果。 ->运行时错误#1 ->林特错误+运行时错误#1 ->林特错误+运行时错误#1

  • 我已经用php5 fpm设置了一个nginx服务器。当我尝试加载网站时,我得到一个没有错误的空白页面。Html页面可以很好地使用,但php却不行。我尝试在php中打开显示错误。但是没有运气。php5-fpm。日志没有产生任何错误,nginx也没有。 nginx。形态 编辑 这是我的nginx错误日志:

  • 我已经在本地机器上成功安装了 CakePHP 3。我使用WAMP服务器(http: // localhost /)。一切正常。当我通过FTP将相同的文件传输到Web服务器时 http://example.com/ cakephp 3不起作用,它会显示白色空白页。Web服务器(example.com)使用php 5.6版本。问题出在哪里?怎么了?

  • V3.4页面设计器空白问题(4933有问题) 解决方案: 方案一:更新版本, 下载地址(新的4935解决了这个问题) 方案二: 不更新版本,执行以下操作: 把studio\plugins下的org.eclipse.osgi_3.8.2.v20130124-134944.jar和org.eclipse.equinox.registry_3.5.200.v20120522-1841.jar拷贝到too

  • 代码: 我已经检查了代码,但没有发现任何线索,这是什么错误,导致这个空白响应的POST类型,而它的工作良好的GET类型。我认为它应该适用于POST类型,因为代码规范对这两种类型都是正确的。请在此指定任何问题。提前致谢

  • 问题内容: 我开始在sidemenu入门应用程序之上构建ionic应用程序。入门应用程序具有抽象的基本状态“应用程序”,所有侧面菜单页面都是该应用程序的子级,例如app.search,app.browse,app.playlists等。 我有类似的层次结构。但是,我希望起始页面是其他页面,这意味着它在应用程序级别。 状态看起来像这样: 当我运行应用程序时,URL默认为 并显示空白页。显然,join