我有一个很大的Swing项目。有没有可以将Swing应用程序jar文件转换为applet的工具?
答案 0 :(得分:4)
如果原始项目创建了一个JFrame,您只需通过
获取JFrame的contentPane即可Container contentPane = myFrame.getContentPane();
然后将JApplet添加为contentPane,但是你会丢失菜单等。
例如,
public class MyApplet extends JApplet {
@Override
public void init() {
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
JFrame myFrame = new MyFrame("Frame");
Container contentPane = myFrame.getContentPane();
setContentPane(contentPane);
}
});
} catch (InterruptedException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
最好让大多数GUI类适合从get get创建JPanel,这样就不会遇到这种限制。
答案 1 :(得分:3)
作为替代方案,您可能希望启动当前应用。来自使用Java Web Start的链接。无需转换,并且比部署applet更容易。
答案 2 :(得分:2)
该工具有4行代码:
public class MyApplet extends Applet {
public void start() {
MyApplication.main(new String[0]);
}
}
此applet将在没有命令行参数的情况下运行您的应用程序。这里的限制是appet将打开自己的窗口。它不会进入浏览器窗口。在常见情况下将其运行到浏览器中并非易事,因为布局可能是动态的,可以在JFrame
本身上创建。因此,您需要了解应用程序结构的一些知识才能完全移植它。
好消息是,在大多数情况下,并不是那么难。只需调用将组件添加到JFrame的代码,其中applet本身扩展了Panel,因此也是容器。
如果您的应用程序收到参数,您应该实现applet的init()
方法。