我一直在四处寻找所以请原谅我,如果我错过了,我知道有很多线程可以处理这类事情,但我还没有找到一个明确的答案。
我的问题(我认为)非常简单。我有一个可执行的JAR文件(在Eclipse中创建),我想在我的网站上托管它,大概是一个Applet。我对applet知之甚少,只是它们是在网页上运行的Java可执行文件。
这种过渡是微不足道的,还是要求我完全重写我的程序?请记住,它严重依赖于Swing组件,如JTabbedPanes,JButtons,JLabels等。
谢谢!
编辑:感谢答案,我已经将我的组件重写为applet友好的类,它扩展了Applet并像在run()方法中那样构建我的GUI。我现在的问题是之前,我有一个程序本身的运行方法(它是一种模拟)。在内部,它只是随着时间的推移更新了某些东西,但是在无限循环中这样做了。如果没有这个运行代码,我的applet可以构建GUI,但如果没有运行代码,GUI就没有任何意义,这会导致applet无法加载任何组件。有什么想法吗?EDIT_2:我刚刚决定使用Java Web Start。感谢。
答案 0 :(得分:4)
您无需将其转换为applet。您只需使用Java Web Start。
答案 1 :(得分:3)
您需要声明一个applet扩展类,它将是您的applet的入口点:
public class HelloWorld extends JApplet {
//Called when this applet is loaded into the browser.
public void init() {
//Execute a job on the event-dispatching thread; creating this applet's GUI.
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
JLabel lbl = new JLabel("Hello World");
add(lbl);
}
});
} catch (Exception e) {
System.err.println("createGUI didn't complete successfully");
}
}
}
从run
方法(在示例中)或init()
,您可以执行程序执行的所有操作。
接下来,您需要在浏览器html中指定您的applet:
<applet code="yourMainClass.class" height="250" width="350">
<b>Sorry, you need Java to play this game.</b>
</applet>
总结:你需要重写你的入口点类(包含main方法的那个),从那里你需要调用所有相同的Swing-building函数。并重新包装一切。