我正在使用 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());
答案 0 :(得分:0)
我认为答案according to what i understood from the comments and the question
非常简单
但首先让我们了解您有时会在加载的网页上有null
标题的问题,这是由于两件事情
您尝试在完全加载页面之前获取标题,因此您必须在页面完全加载时放置一个侦听器,将其标题作为以下简单的代码示例
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
异步工作
页面本身没有标题,所以当WebView
尝试获取标题时,它找不到任何内容ie:null
希望这很有用