2017-06-20 1 views
0

JavaFXとEclipse IDEを使用して、サンプルファイル(私のファイルシステムからのnotifications.html)の読み込みにTeamdevのサンプルアプリケーションを使用しましたが、ページが見つかりません/ DNSエラーです。JxBrowserを使用してhtmlファイルを読み込むことができません

問題のファイル、notifications.html、以下のスニペットに示すように、それを呼び出すソースファイルと同じパッケージに権利があります:

Scene scene = new Scene(new BorderPane(view), 700, 500); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
    browser.loadURL("notifications.html"); 

私は私の問題は、完全修飾を構成していると思います私はMacを使っているので、これをどうやって行うのかは分かりません。私は試しました:

browser.loadURL("Users/myusername/Documents/workspace/jxBrowser/src/application/notifications.html"); 

しかし、それは動作しませんでした。

+0

でなければなりません。 – GregM

+0

ソースフォルダ内からファイルを取得する場合は、絶対パスは使用できません。 https://stackoverflow.com/questions/17771919/unable-to-load-xml-file-from-a-absolute-path/17787262#17787262 – Chris

+0

私の元の投稿で言及したように、完全なパスを使用してはいないいずれかの作業。 JxBrowserのドキュメントによると、browser.loadURL()メソッドを使用してファイルシステムからWebページまたはHTMLファイルを読み込むことができます: "同じメソッドを使用して、ローカルファイルシステムからHTMLファイルを読み込むことができます。例えば、browser.loadURL( "C:\\ path \\ index.html");しかし、Macの場合、htmlファイルがUsersにある場合、パス文字列はどのように見えますか?//Documents/source folder? – GregM

答えて

0

代わりにloadHtml()を使用する必要があります。loadUrl() loadHtmlがネットワークに接続し、あなたのPC上のファイルからurlをダウンロードしようとしたとします。ファイルシステムからhtmlをStringに読み込んで、loadHtml()メソッドに渡します。

 InputStream urlStream = getClass().getResourceAsStream("/notifications.html"); 
    String html = null; 
    try (BufferedReader urlReader = new BufferedReader(new InputStreamReader (urlStream))) { 
     StringBuilder builder = new StringBuilder(); 
     String row; 
     while ((row = urlReader.readLine()) != null) { 
      builder.append(row); 
     } 
     html = builder.toString(); 
    } catch (IOException e) { 
     throw new RuntimeException(e); 
    } 

    browser.loadHTML(html); 

このコードをHTMLファイルには、私がTeamdevからJxBrowserクロムエンジンを使用していますあなたのプロジェクトのresourcesフォルダ

+0

ありがとうございます。これはうまくいった。 HTMLファイルが読み込まれて表示され、[通知]ポップアップが機能します。ページの「通知を表示」ボタンをクリックすると通知がポップアップし、「通知を閉じる」をクリックするとダイアログが閉じます。不思議なことに、browser.loadURL( "file:///Users/username/etc/notifications.html")メソッドを使用すると、htmlページがロードされ、期待どおりに表示されますが、通知ボタンは何もしません。上記の私のコメントを参照してください。ありがとう! – GregM

関連する問題