2014-04-22 3 views
0

남자 애플릿 내에서 프레임을 닫으려고합니다 ... 내 프로그램이 작동하지만 애플릿 내에서 생성 될 프레임이 닫히지 않습니다 ... 어떻게해야합니까 ... 닫는 동안 예외가 발생합니다. 프레임 창 :애플릿 내의 프레임을 닫는 방법?

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

1) 애플릿을 코딩해야하는 이유는 무엇입니까? 사양 때문인 경우. 선생님이 [왜 CS 교사가 Java 애플릿 교육을 중단해야하는지] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/)를 참조하십시오. 2) Swing이 아닌 AWT를 사용해야하는 이유 AWT 구성 요소를 사용하여 포기해야하는 많은 이유 때문에 [AWT를 통한 스윙 엑스트라] (http://stackoverflow.com/a/6255978/418556)에서 내 대답을 참조하십시오. –

+0

내 질문에 대답 .. –

답변

1
System.exit(0); 

이것은 애플릿 모래 상자에 의해 허용되지 않습니다, 애플릿이 완전히 신뢰할 수있는 경우에도 .

하지만이 앱을 스탠드 앱으로 만드는 것이 좋습니다. (Frame/JFrame) & Java Web Start을 사용하여 웹 페이지의 링크/버튼에서 배포하십시오. JWS는 Windows, OS X & * nix에서 작동합니다. 그런 다음 프레임은 모든 보안 수준에서 System.exit(n)으로 전화 할 수 있습니다.

+0

자사의 작동하지 않는 친구 ... – user3485153