2017-08-22 6 views
0

Ich mache ein Java-Programm für die Universität. Ich versuche eine neue Phase zu öffnen, wenn ich auf eine Schaltfläche auf dem Menüpunkt klicke. Diese Phase muss den Inhalt einer HTML-Datei anzeigen.WebEngine laden HTML-Datei in einer JavaFx-Anwendung

Zum Öffnen der Bühne ist kein Problem, das Problem ist, dass die Bühne leer ist (ich bekomme keinen Fehler beim Öffnen der Bühne).

html stage (picture)

In der Hauptsteuerung des Java-Programms ist dies der Code die HTML-Bühne zu öffnen:

@FXML 
public void showBrowser(ActionEvent event) throws IOException { 
    Stage primaryStage = new Stage(); 
    Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("othello/view/browser.fxml")); 
    Scene scene = new Scene(root); 

    primaryStage.setScene(scene); 
    primaryStage.setResizable(false); 
    primaryStage.sizeToScene(); 
    primaryStage.setTitle("Team Background"); 
    primaryStage.show(); 
} } 

Dies ist die fxml Datei der HTML-Bühne, die ich zeigen will, ist (browser.fxml):

<?xml version="1.0" encoding="UTF-8"?> 

<?import javafx.scene.layout.AnchorPane?> 
<?import javafx.scene.web.WebView?> 

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="othello.controller.WebViewController"> 
    <children> 
     <WebView fx:id="webView" layoutX="100.0" prefHeight="400.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" /> 
    </children> 
</AnchorPane> 

Dies ist der Code der Steuerung der fxml Datei (WebViewController):

package othello.controller; 

import javafx.fxml.FXML; 
import javafx.scene.web.WebEngine; 
import javafx.scene.web.WebView; 

public class WebViewController { 
    @FXML 
    public WebView webView; 
    public WebEngine webEngine; 

    private void initialize() { 

webEngine = webView.getEngine(); 
webEngine.load(getClass().getResource("/Othello/src/othello/html/TeamBackground/history.html").toExternalForm()); 



    } 
} 

Ich habe auch versucht, als URL oder als Datei mit dem Pfad der .hmtl-Datei ohne Ergebnis zu laden. Können Sie mir helfen?

Mit freundlichen Grüßen.

+1

der Pfad zur HTML-Datei an Sicherheit grenzender Wahrscheinlichkeit falsch ist: die 'src' Ordner extrem unwahrscheinlich ist, zur Laufzeit zugänglich sein. –

+0

Welches wäre ein korrekter Pfad? danke. – giasco

+1

Keine Ahnung: Sie haben Ihr Projektlayout nicht angezeigt. Wahrscheinlich wird 'getClass(). GetResource ("/othello/html/... ")' funktionieren, wenn alles andere so eingerichtet ist, wie es aussieht. –

Antwort

0

Ich habe versucht, wie Ihr Code zu implementieren und ich fand deinen Fehler, Sie falsch Pfad der HTML-Datei verwendet, um Sie von src-Ordner gestartet, aber wenn man getClass() verwenden. GetResource(), Sie sind zur Zeit in Ressourcenordner src so korrigieren Ihren Weg zum:

webEngine.load(getClass().getResource("/othello/html/TeamBackground/history.html").toExternalForm()); 
+1

ok Ich verstehe den Fehler, danke! – giasco