【问题标题】:How to get JavaFx TabPane title to be WebView's site title?如何让 JavaFx TabPane 标题成为 WebView 的网站标题?
【发布时间】:2020-01-10 20:28:18
【问题描述】:

我正在使用 JavaFx,并且上面有带有 WebView 对象的选项卡。我试图让标签标题的文本像在大多数网络浏览器中一样阅读网页的标题。当我使用“getTitle”方法时,我得到一个空标题,我认为这是因为页面尚未加载。我所做的所有研究都为我提供了一个 Android 解决方案,我正在寻找适用于桌面应用程序的东西。这就是我所拥有的。

public class WebsiteTab extends Tab {

    final static String DEFAULT_SITE = "https://google.com";

    VBox browserBox;
    WebView webView;

    public WebsiteTab() {
        super("Site One");
        webView = new WebView();
        webView.setPrefHeight(5000);

        goToSite(DEFAULT_SITE);

        browserBox = new VBox(10,webView);
        VBox.setVgrow(browserBox, Priority.ALWAYS);

        setContent(browserBox);
    }

    public void goToSite(final String site) {
        webView.getEngine().load(site);
        setText(webView.getEngine().getTitle());
    }
}

任何帮助将不胜感激。

【问题讨论】:

    标签: java javafx webview


    【解决方案1】:

    您可以将选项卡的 text 属性绑定到 Web 引擎的 title 属性。

    public class WebsiteTab extends Tab {
    
        final static String DEFAULT_SITE = "https://google.com";
    
        VBox browserBox;
        WebView webView;
    
        public WebsiteTab() {
            super("Site One");
            webView = new WebView();
            webView.setPrefHeight(5000);
    
            textProperty().bind(webView.getEngine().titleProperty()); // bind the properties
    
            goToSite(DEFAULT_SITE);
    
            browserBox = new VBox(10,webView);
            VBox.setVgrow(browserBox, Priority.ALWAYS);
    
            setContent(browserBox);
        }
    
        public void goToSite(final String site) {
            webView.getEngine().load(site);
        }
    }
    

    这将导致text 属性始终具有与title 属性相同的值。换句话说,当title 属性的值发生变化时,text 属性将自动更新。请注意,我在构造函数中绑定了属性,因为您只需要创建一次绑定。另请注意,绑定时您不能再手动设置text 属性;试图这样做会导致抛出异常。如需更多信息,请参阅Using JavaFX Properties and Binding

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多