如何在加载网页时更改javaFX Web浏览器中的舞台名称?

时间:2017-03-29 18:39:59

标签: java javafx javafx-8 fxml netbeans-8

  

我正在使用 JavaFx 创建一个Web浏览器。假设我的浏览器名称为 MY BROWSER 。我希望每当网页(例如http:www.google.com)加载时,Stage Name应为 MY BROWSER - Google 。怎么做。我已将舞台名称设为我的浏览器

这是我的HomeEngine类的构造函数。

HomeEngine(){
WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
webEngine.load("http://google.com");
} 

我在我的主类中使用这个HomeEngine类的对象。

HomeEngine browser = new HomeEngine();

我已将主要课程的标题设为我的浏览器

primaryStage.setTitle("MY BROWSER :"+browser.getWebEngine().getTitle());

Before Loading Webpage

After Loading Webpage

1 个答案:

答案 0 :(得分:0)

我认为答案according to what i understood from the comments and the question非常简单

但首先让我们了解您有时会在加载的网页上有null标题的问题,这是由于两件事情

  1. 您尝试在完全加载页面之前获取标题,因此您必须在页面完全加载时放置一个侦听器,将其标题作为以下简单的代码示例

    browser.getEngine().getLoadWorker().
                stateProperty().
                addListener(new ChangeListener()
                {
                    @Override
                    public void changed(ObservableValue observable, Worker.State oldValue, Worker.State newValue)
                    {
                        if (newValue == Worker.State.SUCCEEDED)
                        {
                            primaryStage.setTitle("My Browser : " + browser.getEngine().getTitle());
                        }
                    }
                });

    正如您所知WebView异步工作

  2. 页面本身没有标题,所以当WebView尝试获取标题时,它找不到任何内容ie:null

  3. 希望这很有用