我有我的小应用程序(包含在一个浏览器),一个按钮,我想提出的重载或刷新整个小程序的两种方法之一:
- 刷新小程序本身,而不必刷新浏览器
- 刷新整个浏览器
这可能从applet中?
我有我的小应用程序(包含在一个浏览器),一个按钮,我想提出的重载或刷新整个小程序的两种方法之一:
这可能从applet中?
使用AppletContext.showDocument(...)方法:
applet.getAppletContext().showDocument(applet.getDocumentBase(), "_self")
这将加载包含在同一窗口/框小程序已经被加载在applet的文件。
对于你的问题的第一部分,有几个方法。 你可以做给JavaScript调用和删除/从那里重新添加小程序。 使用LiveConnect的从Java调用JS,并且一定要使用“MAYSCRIPT”属性,在applet标记。
在你的JavaScript方法,从DOM中删除的小程序,并添加在它的地方新鲜的。
你也可以把applet的iframe中,它给你更多的选择。
但是,什么是你在重装applet的目标是什么? 这将是小程序,而不是依赖于JavaScript内完全解决这个问题一个更安全的方法(和你的JAR可能会被缓存无论如何,所以你基本上只是重新启动同样的小程序)。
我建议之一:
对于包装的小程序的方法:实施AppletStub,实例化实小程序,并将其显示为一个BorderLayout的,这样的事情(在你的start()方法)的中心:
Applet applet = new TheRealApplet();
applet.setStub(this);
this.setLayout( new BorderLayout() );
add( applet, BorderLayout.CENTER );
applet.init();
applet.start();
...然后调用applet.stop()在包装的stop()方法,并添加重启小程序的新方法 - 通过停止它,从布局中移除,并添加一个新的实例。