我想使用JeditorPane在Jframe上用Java显示网页 我用过的代码:
edPane.setContentType("text/html");
String data="<html>\n" + "<head>\n" + "<script type=\"text/javascript\" src=\"http://maps.google.com/maps/api/js?sensor=false\"></script>\n" +
"<script type=\"text/javascript\">\n" + " function initialize() \n" + " {\n" + " \n" + "
var map = new google.maps.Map(document.getElementById(\"map_canvas\"), myOptions);\n" + "</script>\n" + "</head>\n" + "<body onload=\"initialize()\">\n" +
" <div id=\"map_canvas\" style=\"width:100%; height:100%\"></div>\n" + "</body>\n" + "</html>"; edPane.setText(data);
Ouutput: 它在UI中没有显示任何内容.. 我想显示网页... 请帮忙
答案 0 :(得分:5)
问题是JEditorPane没有Javascript或HTML5(画布)支持,所以你应该使用另一个容器。 有一个类似的问题here,其中解决方案正在转向JavaFX。
答案 1 :(得分:2)
它是开源的,并在LGPL下发布。
JWebBrowser
还提供执行javascript代码的功能。示例代码如下:
private static final String LS = System.getProperty("line.separator");
JWebBrowser webBrowser = new JWebBrowser();
webBrowser.setBarsVisible(false);
webBrowser.setStatusBarVisible(true);
final String htmlContent =
"<html>" + LS +
" <body>" + LS +
" <h1>Some header</h1>" + LS +
" <p>A paragraph with a <a href=\"http://www.google.com\">link</a>.</p>" + LS +
" </body>" + LS +
"</html>";
webBrowser.setHTMLContent(htmlContent);
// [...] Add webBrowser to a container
webBrowser.executeJavascript("document.bgColor = '#FFFF00';");
请参阅项目页面了解更多样本。
答案 2 :(得分:0)
如果我理解正确,您希望HTML
显示JEditorPane
。一种方法是创建HTML
页面。您有两个选择:
HTML
文件放在 DropBox 或 Google云端硬盘这样的影响力上。 在文件中将其置于本地。
JEditorPane editorPane_WEB = new JEditorPane();
editorPane_WEB.setEditable(false); //OPTIONAL
editorPane_WEB.setBorder(null); //OPTIONAL
try {
editorPane_WEB.setPage("http://---------------.com/--.html"); //Or Path/File destination
} catch (IOException error) {/*ERROR*/}
JScrollPane scrollPane_WEB = new JScrollPane(editorPane_WEB);
scrollPane_WEB.setBounds(67, 27, 798, 465); // Don't use null layout.
scrollPane_WEB.getVerticalScrollBar().setUnitIncrement(10);
add(scrollPane_WEB); //class extends JFrame/JPanel
如果这不是你的问题,请不要贬低,只需在下面发表评论!
答案 3 :(得分:0)
我建议嵌入JavaFX WebView,而不是使用像DJ Project这样的本机库。看看我的回答here。在平台独立性方面,我还提到了我对dj项目的一些问题。
答案 4 :(得分:0)
使用JEditorPane
显示网页:
import javax.swing.text.*;
import javax.swing.*;
import java.io.*;
import java.awt.*;
public class GoogleHomePage {
public static void main(String[] args) {
JEditorPane jep = new JEditorPane();
jep.setEditable(false);
try {
jep.setPage("http://www.google.com");
}
catch (IOException e) {
jep.setContentType("text/html");
jep.setText("<html>Could not load http://www.google.com </html>");
}
JScrollPane scrollPane = new JScrollPane(jep);
JFrame f = new JFrame("O'Reilly & Associates");
// Next line requires Java 1.3
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(scrollPane);
f.setSize(512, 342);
f.show();
}
}
答案 5 :(得分:0)
有一种非常简单的方法可以在 Windows 上的 JEditorPane 中显示存储在本地磁盘中的页面
大功告成。
这种方法的好处是您可以将页面与应用程序分开,并保护它们免受应用程序的写入更改。
通常你不能将网页的相对地址或没有协议的地址放入 setPage() 函数中。我提到的上述方法为您提供了相对地址和协议的好处。
享受。