如何使用applet内置的Button在浏览器中停止applet?

时间:2014-01-12 05:45:53

标签: java applet

我在 applet 中编写了一些java代码,并且有一个名为QUIT 的按钮,它的工作是终止执行,但是当applet在浏览器中运行时比不?

我试过了:

  • System.exit(1);
  • System.exit(0);
  • 小程序destroy();
  • 小程序dispose();

它们都没有在浏览器中工作,这背后的逻辑是什么?

2 个答案:

答案 0 :(得分:3)

  • System.exit(1);

这是针对应用程序的异常终止。它不应该在这里使用,并且不会在应用程序中使用,除非存在无法恢复的致命错误。

  • System.exit(0);

applet可能与其他applet共享Java虚拟机。如果JVM中的小程序可以被视为宾馆中的访客,那就像烧毁宾馆的客人之一!即使在受信任的applet中也不允许这样做。

  • 小程序destroy();

当JVM认为适合这样做时,JVM会自动调用该方法。 applet可能会覆盖该方法,但不应显式调用它。

  • 小程序dispose();

destroy()相同,将其留给JVM。


结束和applet的最简单方法是使用AppletContext.showDocument(URL)。它可能会起作用(this表示Applet):

this.getAppletContext().showDocument(thanksForUsingOurAppletURL);

那当然会重定向到网址。 JVM将调用dispose()destroy()方法。然后当它决定这样做时(在最后一个applet结束后可能是'30秒左右'),它会自行关闭。

答案 1 :(得分:0)

您可以从applet调用JavaScript来重写包含applet的div。那就行了!使用JSObject,我可以使用eval()这样的内容

JSObject win = JSObject.getWindow(this);
win.eval("document.getElementById('#applet').innerHTML=''", null);

您也可以使用getAppletContext().showDocument(goodbyeUrl)