我正在编写一个应用程序启动器,而且我目前有一个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();
}
}
答案 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替换。