将html框架集代码从内存加载到Java SWT浏览器

时间:2011-08-26 07:34:01

标签: java html browser swt frames

我有一个用SWT编写的简单html编辑器和它的浏览器控件。我想知道是否有办法从内存加载html框架页面的代码,而不保存hdd上的html文件?

2 个答案:

答案 0 :(得分:1)

您正在寻找的代码是SWT Browser小部件片段之一。请参阅render HTML from memory

import org.eclipse.swt.*;
import org.eclipse.swt.browser.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class Snippet136 {
    public static void main(String [] args) {
        String html = "<HTML><HEAD><TITLE>HTML Test</TITLE></HEAD><BODY>";
        for (int i = 0; i < 100; i++) html += "<P>This is line "+i+"</P>";
        html += "</BODY></HTML>";

        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setLayout(new FillLayout());
        Browser browser;
        try {
            browser = new Browser(shell, SWT.NONE);
        } catch (SWTError e) {
            System.out.println("Could not instantiate Browser: " + e.getMessage());
            display.dispose();
            return;
        }
        browser.setText(html);
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
    }
}

其他几个片段可能会对您有用..请检查SWT Browser's widget snippets

答案 1 :(得分:1)

在内存中添加一行HTML就可以了。

例如,假设您的文件page1.html等位于C:/myHTML的本地计算机中,然后您需要将其添加到内存中的HTML字符串,如下所示,

String html="<HTML><HEAD><TITLE>HTML Test</TITLE>"
            +"<BASE href=\"file:///C:myHTML\\/\" >"
            +"<HEAD>"
            +"<BODY><A src=\"page1.html\">Page1</A></BODY></HTML>"

这适用于Win 7。