JavaFX通过Web浏览器获得favicon?

时间:2014-12-29 15:13:23

标签: web javafx browser

大家好,我可以在网页上找到我喜欢的网站吗?我宁愿不使用任何第三方库,所以如果没有它,请给我一个指南。

2 个答案:

答案 0 :(得分:1)

以下代码段假定favicon应该放在Tab中,就像大多数浏览器一样,为了简单起见,它会错过一些检查。它是一种接受2个参数,url字符串和Tab的方法,并使用Google Favicon Service获取图像。下载图像的工作由Image完成(在这种情况下,它在后台完成):

void loadFavicon(String location, Tab tab) {
  try {
    String faviconUrl = String.format("http://www.google.com/s2/favicons?domain_url=%s", URLEncoder.encode(location, "UTF-8"));
    Image favicon = new Image(faviconUrl, true);
    ImageView iv = new ImageView(favicon);
    tab.setGraphic(iv);
  } catch (UnsupportedEncodingException ex) {
    throw new RuntimeException(ex); // not expected
  }

}

答案 1 :(得分:0)

是的,您可以使用网络引擎轻松地将网页或网站添加到网页视图中以加载页面 以下是您将使用的代码:

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();
          webEngine.load("http://www.favicon.cc/");

如果您想要一个完整的应用程序,请参阅http://www.java2s.com/Code/Java/JavaFX/LoadwebpagefromURLtoWebView.htm上的示例的改编版本:

    package application;

    import javafx.application.Application;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.layout.VBox;
    import javafx.scene.web.WebEngine;
    import javafx.scene.web.WebView;
    import javafx.stage.Stage;

    public class Main extends Application {

public void start(Stage stage) {
    stage.setWidth(500);
    stage.setHeight(500);
    Scene scene = new Scene(new Group());
    VBox root = new VBox();    
    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();
          webEngine.load("http://www.favicon.cc/");  
    root.getChildren().add(browser);
    scene.setRoot(root);

    stage.setScene(scene);
    stage.show();
}

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

}