У меня проблемы с отображением HTML
в JavaFX
WebVew
с использованием Prism.js
. Я могу успешно показать пример Java
, но пример HTML
, похоже, хочет показать HTML в том виде, в каком он появляется при посещении сайта, а не просто показывает строку синтаксиса. Как правильно отобразить HTML
в JavaFX
WebView
, используя Prism.js
?
Пример Java (отображается правильно)
<code>import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
/**
*
* @author blj0011
*/
public class JavaFXApplication319 extends Application
{
@Override
public void start(Stage primaryStage)
{
String javaString = "/* HelloWorld.java\n"
+ " */\n"
+ "\n"
+ "public class HelloWorld\n"
+ "{\n"
+ " public static void main(String[] args) {\n"
+ " System.out.println(\"Hello World!\");\n"
+ " }\n"
+ "}";
String htmlString = "<!DOCTYPE html>\n"
+ "<html>\n"
+ "<head>"
+ "<link href=\"" + getClass().getResource("prism.css") + "\"" + " rel=\"stylesheet\"" + " type=\"text/css\"" + " />\n"
+ "<script src=\"" + getClass().getResource("prism.js") + "\"" + " type=\"text/javascript\"" + "></script>\n"
+ "</head>"
+ "<body>\n"
+ "\n"
+ "<h1>My First Heading</h1>\n"
+ "\n"
+ "<p>My first paragraph.</p>\n"
+ "\n"
+ "<pre>"
+ " <code class=\"language-java\">\n"
+ javaString
+ "</code>\n"
+ "
\ п»
+ " \ n"
+ "";
WebView webView = new WebView ();
WebEngine engine = webView.getEngine ();
engine.setJavaScriptEnabled (истина);
engine.loadContent (HTMLString);
StackPane root = новый StackPane (webView);
Сцена сцены = новая сцена (root, 500, 400);
primaryStage.setTitle («Привет, мир!»);
primaryStage.setScene (сцены);
primaryStage.show ();
}
/ **
* @param args аргументы командной строки
* /
public static void main (аргументы String [])
{
запуск (арг);
}
}
Пример HTML (отображается неправильно)
<code>import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
/**
*
* @author blj0011
*/
public class JavaFXApplication319 extends Application
{
@Override
public void start(Stage primaryStage)
{
String htmlStringPreCode = "<!DOCTYPE html>\n"
+ "<html>\n"
+ "<head>\n"
+ "</head>\n"
+ "<body>\n"
+ "This is a Test\n"
+ "</body>\n"
+ "</html>\n";
String htmlString = "<!DOCTYPE html>\n"
+ "<html>\n"
+ "<head>"
+ "<link href=\"" + getClass().getResource("prism.css") + "\"" + " rel=\"stylesheet\"" + " type=\"text/css\"" + " />\n"
+ "<script src=\"" + getClass().getResource("prism.js") + "\"" + " type=\"text/javascript\"" + "></script>\n"
+ "</head>"
+ "<body>\n"
+ "\n"
+ "<h1>My First Heading</h1>\n"
+ "\n"
+ "<p>My first paragraph.</p>\n"
+ "\n"
+ "<pre>"
+ " <code class=\"language-html\">\n"
+ htmlStringPreCode
+ "</code>\n"
+ "
\ п»
+ " \ n"
+ "";
WebView webView = new WebView ();
WebEngine engine = webView.getEngine ();
engine.setJavaScriptEnabled (истина);
engine.loadContent (HTMLString);
StackPane root = новый StackPane (webView);
Сцена сцены = новая сцена (root, 500, 400);
primaryStage.setTitle («Привет, мир!»);
primaryStage.setScene (сцены);
primaryStage.show ();
}
/ **
* @param args аргументы командной строки
* /
public static void main (аргументы String [])
{
запуск (арг);
}
}
Ожидаемый результат
Java: 1.8.0_171
Prism.js Для загрузки на картинке выбрана также Java