2010-12-03 20 views
0

Ceci est mon appletne peut pas gérer l'événement bouton swing lorsqu'il est exécuté sous forme applet

public class TestApplet extends Applet{ 
public void init(){ 

} 

public void start(){ 
    Swsmall b = new Swsmall(); 


} 
} 

Ceci est mon fichier Swsmall

public Swsmall() { 
    JFrame frame = new JFrame ("Stand alone"); 
    JButton jl = new JButton("Exits properly"); 

    frame.getContentPane().add(jl); 
    frame.setSize(180,80); 
    frame.setVisible(true); 



     jl.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
      System.exit(0);}}); 
      } 

ce mon fichier jsp

<body> 
    <applet code="TestApplet.class" width="400" height="400"></applet> 
    </body> 

Je suis en mesure pour exécuter l'applet avec succès, mais je ne peux pas obtenir de réponse sur le bouton clic événement

Lorsque j'exécute la même application sur la console Java, cela fonctionne parfaitement

Répondre

0
frame.dispose(); 

Le code pour créer le JFrame doit être placé dans la méthode init(). Vous devriez également utiliser la méthode invokeAndWait().

Pour plus d'informations et un exemple de fonctionnement, lisez la section du tableau des caractéristiques de Swing au How to Make Applets.

1

L'appel de System.exit (0) à partir de l'applet Java ne détruit pas une applet. Essayez d'appeler autre chose de l'écouteur d'action (c'est-à-dire System.out.println ("quelque chose"); imprime dans la console de l'applet Java), et vous verrez que ça s'appelle correctement, mais dans ce cas ça ne fonctionne probablement pas s'attendait à ce que ça marche.

+0

Cela ne fonctionnera pas événement je fais quelque chose d'autre dans l'événement d'action bouton – chetan

+0

Cela fonctionne pour moi, vérifiez votre console Java (il devrait lever une exception après avoir appelé System.exit -> java.security.AccessControlException: accès refusé (java. lang.RuntimePermission exitVM.0)). –

+0

Oui vous avez raison mais il me donne la même erreur pour tous les cas non seulement pour Sytem.exit (0). Est-ce que ça me donne une erreur même si je ne peux pas cliquer dessus si j'ai System.exit (0) sur un bouton sur trois? – chetan