我有一个很大的Swing项目。是否有任何工具可以将Swing应用程序jar文件转换为小程序?
如果原始项目创建了一个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();
}
}
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
或 System.exit(0)
。从 applet 启动框架或使用其内容绝非像看起来那样简单。 - Andrew Thompson这个工具只有4行代码:
public class MyApplet extends Applet {
public void start() {
MyApplication.main(new String[0]);
}
}
JFrame
本身上创建的。因此,您需要对应用程序结构有一定的了解才能完全移植它。init()
方法。start()
(例如每次从最小化恢复浏览器时)时都会运行它。请注意,大多数应用程序会执行沙箱化的Applet不允许的操作,例如调用frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
或System.exit(0)
。启动一个框架并使用其内容从Applet中获取数据从未像看起来那样简单。 - Andrew Thompson