我想知道是否可以将Firefox浏览器作为基于Java Swing的应用程序中的组件嵌入.
我从互联网上做了一些研究,但我找不到答案.有些人建议使用Java中可用的其他浏览器组件.我不认为这是更可取的,因为渲染引擎会与Firefox不同.
任何的想法?非常感谢.
我在下面使用此代码但生成的图像已损坏.我想可能是因为渲染选项.有人知道发生了什么吗?
package webpageprinter;
import java.net.URL;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
import javax.swing.text.html.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class WebPagePrinter {
private BufferedImage image = null;
public BufferedImage Download(String webpageurl) {
try
{
URL url = new URL(webpageurl);
final JEditorPane jep = new JEditorPane();
jep.setContentType("text/html");
((HTMLDocument)jep.getDocument()).setBase(url);
jep.setEditable(false);
jep.setBounds(0,0,1024,768);
jep.addPropertyChangeListener("page",new
PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent e) {
try
{
image = new
BufferedImage(1024,768,BufferedImage.TYPE_INT_RGB );
Graphics g = image.getGraphics();
Graphics2D graphics = (Graphics2D) g;
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
jep.paint(graphics); …Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个大约2MB的大文件(为了精确起见,大小为1927KB)加载到JEditorPane中,它需要大约65秒,它似乎是JTextPane/JEditorPane的一个错误,我也读了几个像这样的网上文章,但我找不到解决方案......
这是我使用的代码:
final String htmlContent = //Load a 2MB String
previewPane.setContentType("text/html; charset=UTF-8");
previewPane.setText(htmlContent);
Run Code Online (Sandbox Code Playgroud)
您可以在我的应用程序日志中看到,setText方法大约需要65秒才能完全执行:
Set the html content(1927KB) of the Preview pane, loading time=68230ms
Set the html content(1927KB) of the Preview pane, loading time=62693ms
Set the html content(1927KB) of the Preview pane, loading time=66583ms
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?
大约65秒加载2MB文本是英特尔酷睿2双核2.93GHz与8GB DDR 3内存的糟糕表现......
我想将我的SWT浏览器嵌入swing jframe中.我尝试示例,但它需要调整窗口大小以加载浏览器窗口.如何重新调整画布,我该怎么做?
我的问题是如果JLabel(java swing)支持html4和css2.我知道,它支持html3.2,但我想要更新的版本.
或者是否有另一种在jPanel上显示html4的方法.
如何设置SWT Browser发送的用户代理头?
编辑:或者是否有任何java的浏览器库允许指定用户代理?
java ×6
swing ×4
swt ×2
browser ×1
firefox ×1
html ×1
http-headers ×1
java-canvas ×1
jeditorpane ×1
performance ×1
screenshot ×1
user-agent ×1