如何使用源代码在java中显示html页面?
我有一个PageRead类和方法,可以从给定的url下载html源代码如何使用源代码在java中显示html页面?,java,html,Java,Html,我有一个PageRead类和方法,可以从给定的url下载html源代码 public class PageRead { public static StringBuilder readPage(String pageAddr) { try { URL url = new URL(pageAddr); BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); String line;
public class PageRead {
public static StringBuilder readPage(String pageAddr) {
try {
URL url = new URL(pageAddr);
BufferedReader reader = new BufferedReader(new
InputStreamReader(url.openStream()));
String line;
StringBuilder sb=new StringBuilder();
while ((line = reader.readLine()) != null) {
sb.append(line+"\n");
}
reader.close();
return sb;
}
catch (MalformedURLException e) {
e.printStackTrace();
return new StringBuilder("");
}
catch (IOException e) {
e.printStackTrace();
return new StringBuilder("");
}
}
public static void main(String arg[]){
System.out.println(readPage("http://www.google.com"));
}
}
这将以字符串形式返回源代码,如下所示:
<!doctype html>.......</body></html>
。。。。。。。
有没有一种方法可以使用此源代码以类似JFrame的方式显示此html?您可以将源代码写入文件,例如:
file file=new file(“index.html”)然后使用默认浏览器打开该文件。页面打开可以用
如果这就是您的想法:D您可以将源代码写入文件,类似于:file file file=new file(“index.html”)然后使用默认浏览器打开该文件。页面打开可以用
如果这就是您的想法:D如果问题是这样的话,您可以用Java开发一个简单的浏览器。在Java6之前,有一个JWebPane
,现在有一个基于WebKit的引擎作为JavaFX的一部分:
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;
public class BrowserTest extends Application {
@Override
public void start(Stage stage) throws Exception {
StackPane root = new StackPane();
WebView view = new WebView();
WebEngine engine = view.getEngine();
engine.load("http://www.google.com");
root.getChildren().add(view);
Scene scene = new Scene(root, 800, 600);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) throws Exception {
Application.launch(args);
}
}
示例取自GitHub用户skrb的一个示例。
我检查过的一件事是,它还有一个方法,您可以直接将HTML
内容作为String
提供给它,这样您就可以编写
engine.loadContent(readPage("http://www.google.com").toString());
要取代当前的load()
调用(它需要一个URL),只需准备好下载的HTML
代码并不是网页所需的一切。如果这是一个问题,您可以使用Java的简单浏览器。在Java6之前,有一个JWebPane
,现在有一个基于WebKit的引擎作为JavaFX的一部分:
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;
public class BrowserTest extends Application {
@Override
public void start(Stage stage) throws Exception {
StackPane root = new StackPane();
WebView view = new WebView();
WebEngine engine = view.getEngine();
engine.load("http://www.google.com");
root.getChildren().add(view);
Scene scene = new Scene(root, 800, 600);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) throws Exception {
Application.launch(args);
}
}
示例取自GitHub用户skrb的一个示例。
我检查过的一件事是,它还有一个方法,您可以直接将HTML
内容作为String
提供给它,这样您就可以编写
engine.loadContent(readPage("http://www.google.com").toString());
代替当前的load()
调用(需要一个URL),只需准备好下载的HTML
代码并不是网页所需的一切。可以在Swing的窗口中打开HTML页面或内容JEditorPane
具有各种构造函数,包括:
JEditorPane(URL initialPage)
JEditorPane(String type, String text) // where type can be a MIME type: text/html
这可以用于简单的html内容;限制是仅支持3.2版的html版本。可选地,Swing应用程序可以使用JFXPanel
在JFrame
中打开JavaFX
的WebView
,您可以在Swing的JEditorPane
中打开html页面或内容JEditorPane
具有各种构造函数,包括:
JEditorPane(URL initialPage)
JEditorPane(String type, String text) // where type can be a MIME type: text/html
这可以用于简单的html内容;限制是仅支持3.2版的html版本。或者,Swing应用程序可以使用JFXPanel
在JFrame
中打开JavaFX
的WebView
,Swing组件对html有非常基本的支持,您可以切换到JavaFX的Swing组件对html有非常基本的支持,你可以切换到JavaFx的hi,我已经尝试了你的代码,它会工作的!但是我在java程序中添加了一个JFrame类,我想在JFrame中调用这个ShowBrowser方法,有可能吗?现在我不能在JFrame中使用上述代码,因为JFrame扩展了JFrame类,并且不允许我再扩展应用程序类@JasonWEI我没有试过,但我想你需要这个教程:嗨,我试过你的代码,它会工作的!但是我在java程序中添加了一个JFrame类,我想在JFrame中调用这个ShowBrowser方法,有可能吗?现在我不能在JFrame中使用上述代码,因为JFrame扩展了JFrame类,并且不允许我再扩展应用程序类@JasonWEI我没有尝试过,但我认为您需要本教程: