将Java Swing应用程序转换为applet的工具

时间:2012-03-20 16:30:04

标签: java swing applet

我有一个很大的Swing项目。有没有可以将Swing应用程序jar文件转换为applet的工具?

3 个答案:

答案 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()方法。