在JPanel中显示外部HTML文件

时间:2013-07-22 18:26:11

标签: java html swing webserver

我正在编写一个应用程序启动器,而且我目前有一个HTML文件,它显示应用程序的更改,这就像一个魅力,每次发布新的更新我都会列出HTML文件中的更改将在用户.exe / .jar文件中自动更新。

然而,我使用的当前方法要求用户下载.exe / .jar文件以显示更新,因此我如何从Web服务器获取HTML文件并相应地显示它。

这是我目前的代码;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;

public class Launcher extends JFrame {

private static final long serialVersionUID = -6224390548062243879L;

public static void createFrame() {

    JEditorPane editorPane = new JEditorPane();
    editorPane.setEditable(false);

    java.net.URL helpURL = Launcher.class.getResource("/changelog.html");

    if (helpURL != null) {
        try {
            editorPane.setPage(helpURL);
        } catch (IOException e) {
            System.err.println("Attempted to read a bad URL: " + helpURL);
        }
    } else {
        System.err.println("Couldn't find file: changelog.html");
    }

    JScrollPane editorScrollPane = new JScrollPane(editorPane);

    editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    editorScrollPane.setPreferredSize(new Dimension(350, 300));
    editorScrollPane.setMinimumSize(new Dimension(10, 10));

    JLabel emptyLabel = new JLabel("");

    emptyLabel.setPreferredSize(new Dimension(300, 300));

    JButton launch = new JButton("Launch!");

    launch.setPreferredSize(new Dimension(350, 50));

    JFrame f = new JFrame();

    f.setTitle("Stonelore Launcher");
    f.setSize(350, 400);
    f.setLocationRelativeTo(null);
    f.getContentPane().add(emptyLabel, BorderLayout.CENTER);
    f.getContentPane().add(editorScrollPane, BorderLayout.NORTH);
    f.getContentPane().add(launch, BorderLayout.SOUTH);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setResizable(false);
    f.setVisible(true);
}

public static void main(String[] args) {
    createFrame();
}
}

1 个答案:

答案 0 :(得分:3)

您所做的就是更改以下行:

java.net.URL helpURL = Launcher.class.getResource("/changelog.html");

以下内容:

java.net.URL helpURL = new URL("http://www.server.com/changelog.html");

当然,您必须用URL construtor中的实际URL替换。