2012-04-25 29 views
1

我試圖按照此處描述的說明:http://docs.oracle.com/javafx/2.0/webview/jfxpub-webview.htm在javafx 2.1上顯示網頁,但網頁不顯示,儘管我已經使用javafx-ant工具簽署了我的應用程序(此工具鏈接提到關於簽署javafx應用程序How can I display a javascript webpage inside a WebView in JavaFx 2.0 in Browser)。無法在WebView控件上顯示網頁

我可以在瀏覽器上運行javafx時查看網頁,但在以java獨立應用程序運行應用程序時無法查看它。

下面的代碼:

瀏覽器控件:

public class Browser extends Region { 

    final WebView browser = new WebView(); 
    final WebEngine webEngine = browser.getEngine(); 

    public Browser() { 
     //apply the styles 
     getStyleClass().add("browser"); 
     // load the web page 
     webEngine.load("http://www.google.com"); 
     //add the web view to the scene 
     getChildren().add(browser); 


    } 
    //... 
} 

顯示它:

Stage stage = new Stage(); 

    stage.setTitle("Web View"); 
    Scene scene = new Scene(new Browser(),590,400, Color.web("#666970")); 
    stage.setScene(scene); 
    scene.getStylesheets().add("/com/sai/javafx/calendar/styles/BrowserToolbar.css"); 

    stage.show(); 

任何想法,將高度讚賞。

+0

我標記的JavaScript在這裏,因爲我嘗試使用WebView控件將jQuery集成到JavaFX 2.0的應用程序。 – Thinhbk 2012-04-26 03:33:30

+0

您是否試圖加載一個簡單的html文件,而不使用css,javascript以及可能來自本地文件系統?您的獨立應用程序,即jar文件是否包含正確位置的所有資源?您是否嘗試在Netbeans中構建並運行您的應用程序? IDE可能會給你一些線索。 – 2012-04-26 08:30:09

+0

我可以從本地html文件加載網頁,我使用eclipse Helios來運行我的應用程序。 – Thinhbk 2012-04-26 08:58:26

回答

0

據我所知,解決我的問題是加載本地.html文件的唯一途徑(不能從其他域中加載網頁,而這個HTML文件必須不涉及任何外部鏈接)

public Browser() { 
    //apply the styles 
    getStyleClass().add("browser");   
    // load the web page 
    final URL urlHello = Browser.class.getResource("sample.html"); 
    webEngine.load(urlHello.toExternalForm()); 
} 

顯示它:

Stage stage = new Stage(); 

stage.setTitle("Web View"); 
Scene scene = new Scene(new Browser(),590,400, Color.web("#666970")); 
stage.setScene(scene); 
scene.getStylesheets().add("/com/sai/javafx/calendar/styles/BrowserToolbar.css"); 

stage.show(); 
2

這裏是一個示例應用程序:

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.web.WebView; 
import javafx.stage.Stage; 

public class WebViewSample extends Application { 
    public static void main(String[] args) { launch(args); } 
    @Override public void start(final Stage primaryStage) { 
    final WebView webView = new WebView(); 
    webView.getEngine().load("http://docs.oracle.com/javafx/"); 
    primaryStage.setScene(new Scene(webView)); 
    primaryStage.show(); 
    } 
} 

下面是它看起來像在瀏覽器中,內滾動窗格是JavaFX的WebView中渲染的瀏覽器和外文本中嵌入了JavaFX的WebView的HTML頁面。

WebView in Browser Sample Image

要運行它,我用NetBeans nightly buildJavaFX 2.2b4JDK7u6ea,Win7的,IE9。

步驟在NetBeans是:

  1. 新建項目| JavaFX | JavaFX應用程序
  2. 使用示例應用程序代碼創建一個Java文件。
  3. 創建項目後,右鍵單擊Project |屬性
    • 構建|部署|檢查「請求無限制訪問」
    • 運行|檢查無線電運行「在瀏覽器」
    • 確定接受屬性更改
  4. 按F6鍵運行在瀏覽器中的應用。
  5. 接受任何安全對話框警告。
  6. 等待幾秒鐘以裝入WebView。
+0

Tks爲您提供幫助,也許我的問題沒有包含足夠的信息(我剛剛更新)。我可以在Web瀏覽器上運行時查看網頁,但在運行應用程序時無法查看網頁作爲Java獨立應用程序。 此外,我使用maven構建和部署我的源代碼,而不使用NetBean IDE。 – Thinhbk 2012-04-25 06:06:31

+0

如果您運行我作爲獨立應用程序提供的示例應用程序,它會在您的系統上顯示一個網頁嗎? (它在我的)。如果沒有,你需要提供更多的環境細節和你的maven腳本和/或更多的代碼來獲得進一步的幫助。您無需簽署獨立的應用程序,只需要在瀏覽器或webstart中部署應用程序。 – jewelsea 2012-04-25 06:26:14

+0

不幸的是,儘管使用了Netbean IDE,我仍然無法運行javafx應用程序。 我使用javafx-ant構建工具,因此結果應該與NetBean IDE相同(據我所知,NetBean IDE也使用javafx-ant構建工具) – Thinhbk 2012-04-25 07:21:08