Pour. première partie de votre question, il y a quelques approches. Vous pouvez appeler JavaScript et supprimer/rajouter l'applet à partir de là. Utilisez LiveConnect pour appeler depuis Java vers JS et veillez à utiliser l'attribut "MAYSCRIPT" dans votre balise applet.
Dans votre méthode JavaScript, supprimez l'applet du DOM et ajoutez-en un nouveau à sa place.
Vous pouvez également placer l'applet dans un iFrame, ce qui vous donne plus d'options.
Mais quel est votre but en rechargeant l'applet? Ce serait une approche plus sûre de résoudre complètement ce problème au sein de l'applet au lieu de compter sur JavaScript (et votre JAR sera probablement mis en cache de toute façon, donc vous ne faites que redémarrer le même applet).
Je suggère soit:
Code
- votre applet afin que vous pouvez réinitialiser son interface graphique et les données avec un appel de méthode, ou
- exécuter l'applet via une applet petite enveloppe qui peut déposer/recréer le réel applet qu'il affiche.
Pour l'approche de l'applet wrapper: mettre en œuvre AppletStub, instancier l'applet réelle, et l'afficher comme centre d'un BorderLayout, quelque chose comme ça (dans la méthode start()):
Applet applet = new TheRealApplet();
applet.setStub(this);
this.setLayout(new BorderLayout());
add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
. Ensuite, appelez applet.stop() dans la méthode stop() de l'encapsuleur, et ajoutez une nouvelle méthode qui redémarre l'applet - en l'arrêtant, en le supprimant de la mise en page et en ajoutant une nouvelle instance.
Pour la partie 2, voir http://stackoverflow.com/questions/661104/how-can-i-cause-the-browser-to-navigate-to-a-given-url-from-a-java- applet – Pool