2017-08-22 3 views
0

Je fais un programme Java pour l'université. Je suis tryng pour ouvrir une nouvelle étape lorsque vous cliquez sur un bouton sur l'élément de menu. Cette étape doit montrer le contenu d'un fichier html.WebEngine charge le fichier html dans une application JavaFx

Pour ouvrir l'étape n'est pas un problème, le problème est que l'étape est vide (je ne reçois aucune erreur lors de l'ouverture de la scène).

html stage (picture)

Dans le contrôleur principal du programme java c'est le code pour ouvrir le html étape:

@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(); 
} } 

Ceci est le fichier FXML du html étape que je veux montrer (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> 

Ceci est le code du fichier FXML du contrôleur (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()); 



    } 
} 

J'ai également essayé de charger comme URL ou comme fichier en utilisant le chemin du fichier .hmtl sans aucun résultat. Pourriez-vous m'aider?

Cordialement.

+1

le chemin vers le fichier HTML est presque certainement faux: le dossier 'src' est extrêmement peu susceptible d'être accessible à l'exécution. –

+0

ce qui serait un chemin correct? merci. – giasco

+1

Aucune idée: vous n'avez pas montré la disposition de votre projet. Probablement 'getClass(). GetResource ("/othello/html/... ")' fonctionnera, si tout le reste est configuré tel qu'il est. –

Répondre

0

J'ai essayé de mettre en œuvre comme votre code et j'ai trouvé votre erreur, vous avez utilisé le mauvais chemin du fichier html que vous avez démarré du dossier src, mais lorsque vous utilisez getClass(). GetResource(), vous êtes actuellement dans le dossier de ressources src donc corriger votre chemin vers:

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

ok je comprends l'erreur, merci! – giasco