如何在applet中关闭框架?

时间:2014-04-22 07:42:59

标签: java applet awt frame accesscontrolexception

伙计们正试图在applet中关闭框架...我的程序正在运行,但问题是在applet中创建的框架没有关闭......我应该怎么办... 它在关闭框架窗口时给出了异常:

C:\jdk1.6.0\bin>appletviewer me.java                                            
Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM.0)                                       at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)                                                         at
java.security.AccessController.checkPermission(AccessController.java:546) 

这是我的代码:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
/*<applet code="me.class" height=500 width=500></applet>*/
class se extends Frame {

    String msg;

    public se() {
        msg="This is Frame";
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }

    public void paint(Graphics g) {
        g.drawString(msg,10,100);
    }
}

public class me extends Applet {

    public void init() {
        se s1=new se();
        s1.setSize(400,400);
        s1.setVisible(true);
        s1.setTitle("The JAVA GAMER");
    }

    public void paint(Graphics g) {
        g.drawString("This is Applet",10,100);
    }
}

1 个答案:

答案 0 :(得分:1)

System.exit(0);

即使applet完全受信任,applet sand-box 也不允许这样做。

但最好是使这个应用程序成为一个独立的应用程序。 (Frame / JFrame)&amp;使用Java Web Start从网页上的链接/按钮部署它。 JWS适用于Windows,OS X&amp; * nix中。然后框架可以在任何安全级别调用System.exit(n)