【问题标题】:How to close frame within applet?如何关闭小程序内的框架?
【发布时间】:2014-04-22 07:42:58
【问题描述】:

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

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);
    }
}

【问题讨论】:

标签: java applet awt frame accesscontrolexception


【解决方案1】:
System.exit(0);

小程序沙盒不允许这样做,即使小程序是完全受信任的。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    相关资源
    最近更新 更多