Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1600 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Problème de destruction dynamique d'Applet

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de destruction dynamique d'Applet

n°1574096
evayla
Posté le 12-06-2007 à 21:58:39  profilanswer
 

Bonjour,
 
Je crée dynamiquement un applet en javascript dans un élément "DIV" créé aussi dynamiquement et qui est ajouté aux éléments de "BODY" (Cf. code Javascript ci-dessous qui est écrit pour Firefox Mozilla).  
 
Mon code Java se trouve dans le jar "applet.jar" et il est détaillé plus loin ci-dessous. Mon applet est composé d'éléments SWING.  
 
Quand je clique sur le bouton "close" de mon applet, la fonction Java "closeApplication" appelle "stop()" qui enregistre les paramètres sélectionnés et fait appel à la fonction Javascript "closeApplet", qui elle, récupère le tableau transmis par Java puis détruit l'élément HTML "DIV" qui contenait l'applet.
 
Mon problème est le suivant :  
 
J'aimerais détruire mon applet Java à partir de mon code Java après avoir appelé la fonction "closeApplet" de Javascript. J'ai essayé plusieurs méthodes mais je crois que quand Java appelle la fonction "closeApplet", il ne fait pas la suite de la méthode Java et il réinitialise l'applet, mais comme le conteneur HTML "DIV" n'existe plus, tout plante au bout de quelques secondes.
 
Rq : La fonction "destroy" de JApplet, placé après la fonction call, ne marche pas.
 
Est-ce que vous savez résoudre ce problème ?  
 
Merci beaucoup par avance,
Eva
 
 
CODE JAVASCRIPT :
 
function getListByString(){  
 
    var div=document.createElement("div" );
    div.setAttribute("id","divapplet" );
    div.setAttribute("style","position:absolute; top:130; left:300;" );
     
    var applet=document.createElement("embed" );
    applet.setAttribute("code","payloadtm.DataAppletPicker.class" );
    applet.setAttribute("archive","applet.jar,plugin.jar" );
    applet.setAttribute("type","application/x-java-applet;version=1.3" );
    applet.setAttribute("name","myApplet" );
    applet.setAttribute("id","myAppletid" );
    applet.setAttribute("width","500" );
    applet.setAttribute("height","450" );
    applet.setAttribute("codebase","." );
    applet.setAttribute("mayscript","true" );
 
    applet.setAttribute("tonName",TonName);
     
    dojo.byId("bodyid" ).appendChild(div);
    dojo.byId("divapplet" ).appendChild(applet);
}
 
function closeApplet (tabPara){
 
//Récupération des éléments de tabPara => TODO
 
  dojo.byId("divapplet" ).innerHTML="";
 
}  
 
 
CODE JAVA :
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import netscape.javascript.*;
import java.net.*;
 
public class DataAppletPicker extends JApplet{
 
 protected JPanel buttonPanel = new JPanel();
 private JPanel jPanel1 = new JPanel();
 protected JPanel inputPanel = new JPanel();
 private BorderLayout borderLayout1 = new BorderLayout();
 protected JPanel messagePanel = new JPanel();
 private BorderLayout borderLayout2 = new BorderLayout();
 
 private JScrollPane tmListScrollPane = new JScrollPane();
 private JLabel messageLabel = new JLabel();
 private JButton addButton = new JButton();
 private JButton closeButton = new JButton();
 private JPanel filterPanel = new JPanel();
 private JLabel filterLabel = new JLabel();
 private JTextField tmFilter = new JTextField(20);
 private JTable tmTable = new JTable();
 
 private String tmSelected = null;
 private TMESTableModelFilter tmTableModel;
 
 private Vector collection_ = new Vector();
 
   
 URL urlProperties;
        String TonName;  
 String fileParameters="";
 String propertiesFileName = "data/param.properties";
 URL urlParameterList;
 JSObject win;
   
 public void init() {
   
 tonName=getParameter("TonName" );
     win = JSObject.getWindow(this);
         
     try {
       
          urlProperties = new URL(getCodeBase(), propertiesFileName);
          urlParameterList = new URL(getCodeBase(), "data/PARAM-" + tonName  
 
+ ".txt" );
      try {
     
 
MyAppletManager.loadPropertiesFile(tonName,urlProperties,urlParameterList);
          } catch (Exception e) {System.out.println(e);}
     }
     catch(Exception e) {
      e.printStackTrace();
     }
 try {
  jbInit();
 } catch (Exception e) {
  e.printStackTrace();
 }
 
 messageLabel.setText(tonName + " PARAM List : " );
     
        }
 
 private void jbInit() throws Exception {
   
  Container mainPane = this.getContentPane();
  jPanel1.setLayout(borderLayout1);
  inputPanel.setLayout(borderLayout2);
  mainPane.setLayout(new BorderLayout());
  mainPane.add(buttonPanel, BorderLayout.SOUTH);
  mainPane.add(jPanel1, BorderLayout.CENTER);
  JPanel topPanel = new JPanel(new BorderLayout());
  topPanel.add(messagePanel, BorderLayout.CENTER);
  jPanel1.add(inputPanel, BorderLayout.CENTER);
  jPanel1.add(topPanel, BorderLayout.NORTH);
 
  addButton.setText("Add PARAM" );
  addButton.addActionListener(new java.awt.event.ActionListener()    
                {
   public void actionPerformed(ActionEvent e) {
    addButton_actionPerformed(e);
   }
  });
 
  closeButton.setText("Close" );
  closeButton.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(ActionEvent e) {
    closeButton_actionPerformed(e);
   }
  });
 
   
  tmTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  tmTableModel = new  
TableModelFilter(tmTable.getModel(),MyAppletManager.gettmListApplet(),tmFilter);
   
  tmTable.setModel(tmTableModel);
  tmListScrollPane.getViewport().add(tmTable, null);
  inputPanel.add(tmListScrollPane, BorderLayout.CENTER);
  messagePanel.setLayout(new BorderLayout());
  messagePanel.add(filterPanel, BorderLayout.NORTH);
  messagePanel.add(messageLabel, BorderLayout.WEST);
  buttonPanel.add(addButton);
  buttonPanel.add(closeButton);  
   
 }
 
 void addButton_actionPerformed(ActionEvent e) {
  //TO DO
 }
 
 void closeButton_actionPerformed(ActionEvent e) {
  closeApplication();
 }
 
 protected void closeApplication() {
  //dispose();
  //setVisible(false);
  stop();
 }
 
 public void stop() {
   
  if (collection_.size()!=0) {
   String paramCollect []= new String[getCollection().size()];
   paramCollect[0] = (getCollection()).toString();
   win.call("closeApplet",paramCollect);
  }
   
     else {
      String paramCollect []= new String[1];
      paramCollect[0]="empty";
   win.call("closeApplet",paramCollect);
     }
 }
 
 public Vector getCollection() {
  return collection_;
 }
 
 public void start() {
  show();
 }
 
 public void destroy(){
   
 }
}

mood
Publicité
Posté le 12-06-2007 à 21:58:39  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Problème de destruction dynamique d'Applet

 

Sujets relatifs
Problème URL REWRITINGProblème de droit sur une bdd : user inexistant
Gros problème ! Incompatibilité ?probleme de programmation
Probleme image prise par caméra progressive scanProbleme d'affichage d'image sur IE
Problème D'insertion dans SQL[Résolu] Problème de return d'une fonction
probleme de mise en page d'un formulaireProblème d'affichage avec la date (Anglais/Francais)
Plus de sujets relatifs à : Problème de destruction dynamique d'Applet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR