IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NetBeans Java Discussion :

difference jFrame / applet


Sujet :

NetBeans Java

  1. #1
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut difference jFrame / applet
    bonjour,
    j'ai changé un jframe en applet.
    au passage l'initialisation du jTree ne marche plus.
    j'initialise comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    try {
                dbf = DocumentBuilderFactory.newInstance();
                db = dbf.newDocumentBuilder();
                java.net.URL url=getClass().getResource("/material/mat.xml");
                doc = db.parse(url.openStream());
            } catch (java.io.IOException e1) {
                JOptionPane.showMessageDialog(null,"Failed to read XML file:\n"+e1.getMessage());
                return;
            } catch (SAXException e2) {
                JOptionPane.showMessageDialog(null,"Failed to parse XML file:\n"+e2.getMessage());            
                return;
            } catch (ParserConfigurationException e3) {
                JOptionPane.showMessageDialog(null,"Parser configuration exception:\n"+e3.getMessage());            
                return;
            }
    dans le programme jFrame, le tree affiche le contenu du fichier mat.xml, mais dans l'applet le tree n'affiche rien.
    comment faire?
    merci
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 558
    Points : 15 481
    Points
    15 481
    Par défaut
    Je dirait qu'il faut remplacer une JFame par une JApplet plutôt qu'une Applet

  3. #3
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut
    Bah c'est bien un JApplet dont je parle
    à mon avis le probleme vient de là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                java.net.URL url=getClass().getResource("/material/mat.xml");
                doc = db.parse(url.openStream());
    mais je ne vois pas comment reparer.
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  4. #4
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut
    bonsoir,
    quelcun aurait-il une petite idée?
    merci
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    Par défaut
    il est placé où cet xml ? dans le jar ?
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  6. #6
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut
    non,
    il est sous un dossier à la meme racine que le jar nommé material:
    dossier racine\inflection.jar
    dossier racine\material\mat.xml
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    Par défaut
    Ben, c'est là le problème pour l'applet.
    Puisque l'applet est téléchargée depuis le réseau en local, le fichier xml n'est du coup pas dans le classloader et cela ne fonctionne plus.

    Par contre, avec une JFrame, tu dois certainement dire que le dossier courant fait partie du classpath. Et du coup le xml est bien chargé.

    Vincent
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  8. #8
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut
    Ben, c'est là le problème pour l'applet.
    ok! dans ce cas, si j'inclus le xml dans le jar, comme l'appeler pour initialiser le tree?

    merci;
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  9. #9
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut
    lorsque le xml etait juste à coté du jar (dans le meme repertoire), je l'appelais ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doc = db.parse("mat.xml");
    comment l'appeler alors à present si je le mets à l'interieur du jar?

    merci
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  10. #10
    Membre averti

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Points : 371
    Points
    371
    Par défaut
    Un petit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doc = db.parse(getClass().getResource("mat.xml"));
    devrait fonctionner.

  11. #11
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Bonjour,

    Pour plus de précisions, cet article de la FAQ!

    Valère
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  12. #12
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut
    helas non,
    ça m'indique un type incompatible:
    found: javax.xml.parser.document builder.parse
    required: org.w3c.dom.document
    Si j'ecrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doc = db.parse(getClass().getResource("mat.xml").openStream());
    il n'y a plus d'erreur de compilation, mais le jar ne se lance plus.
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  13. #13
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut
    bonsoir,
    Par contre, avec une JFrame, tu dois certainement dire que le dossier courant fait partie du classpath. Et du coup le xml est bien chargé.
    meme pas.
    il suffit que le xml soit dans le meme dossier que le jar pour que son contenu s'affiche dans le tree.

    j'ai googlé un peu pour voir comment appeler un fichier qui se trouve à l'interieur d'un jar et je suis tombé sur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    URL url=getClass().getResourceAsStream("mat.xml");
    mais ça donne la meme chose que mon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doc = db.parse(getClass().getResource("mat.xml").openStream());
    à savoir que le jar ne se lance plus.
    comment faire? je deviens chevre

    merci
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  14. #14
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    Par défaut
    De quel type sont db et doc ?

    Vincent
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  15. #15
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut
    bonsoir,
    De quel type sont db et doc ?

    Vincent
    db est de type DocumentBuilder, et doc de type Document:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
        private void initializeTree() {
     
            // Read the XML files        
            DocumentBuilderFactory dbf;
            DocumentBuilder db;
            Document doc;
            File file;
            try {
                dbf = DocumentBuilderFactory.newInstance();
                db = dbf.newDocumentBuilder();
                /*java.net.URL url=getClass().getResource("/material/mat.xml");
                doc = db.parse(url.openStream());*/
                doc = db.parse("mat.xml");
            } catch (java.io.IOException e1) {
                JOptionPane.showMessageDialog(null,"Failed to read XML file:\n"+e1.getMessage());
                return;
            } catch (SAXException e2) {
                JOptionPane.showMessageDialog(null,"Failed to parse XML file:\n"+e2.getMessage());            
                return;
            } catch (ParserConfigurationException e3) {
                JOptionPane.showMessageDialog(null,"Parser configuration exception:\n"+e3.getMessage());            
                return;
            }  
     
            doc.getDocumentElement().normalize();        
            NodeList rows = doc.getElementsByTagName("Row");
            // Start at row 2 (1st row is column names,2nd row is empty) 
            root = new FamilyNode("Root");
            for(int i=2;i<rows.getLength();i++)
              addToTree(getRow(rows.item(i)));              
     
            // Initialise the tree model
            matTreeModel = new DefaultTreeModel(root);
            jTree1.setModel(matTreeModel);
            jTree1.setRootVisible(false);
            jTree1.setShowsRootHandles(true);
     
        }    
     
        // Add the specified row to the tree
        private void addToTree(Vector rowItems) {
     
            String family = (String)rowItems.get(0);
     
            // Search if family already exists
            boolean found = false;
            int i=0;
            while(i<root.getChildCount() && !found) {
              found = ( root.getChildAt(i).toString().equalsIgnoreCase(family) ); 
              if(!found) i++;
            }
     
            if(found) {
     
              // Add the material to the family
              FamilyNode curNode = (FamilyNode)root.getChildAt(i);
              MaterialNode newMatNode = new MaterialNode(rowItems);
     
              // Check that the material is not duplicated
              boolean found2 = false;
              int j=0;
              while(j<curNode.getChildCount() && !found2) {
                MaterialNode n = (MaterialNode)curNode.getChildAt(j);
                found2 = n.equals(newMatNode); 
                if(!found2) j++;
              }
              if(!found2) curNode.add(newMatNode);
     
            } else {
     
              // Create the new family
              FamilyNode newNode = new FamilyNode(family);
              newNode.add(new MaterialNode(rowItems));
              root.add( newNode );     
     
            }
     
        }
     
        // Parse a Row and return a vector containing cells.
        private Vector getRow(Node n) {
     
            Vector values = new Vector();
            int curIdx = 1;
     
            NodeList children1 = n.getChildNodes();
            int length1 = children1.getLength();
            for(int i=0;i<length1;i++) {
               Node child1 = children1.item(i);
               if("Cell".equals(child1.getNodeName())) {
     
                 Node indexChild = child1.getAttributes().getNamedItem("ss:Index");
                 if( indexChild!=null ) {
                   try {
                     int newIdx = Integer.parseInt(indexChild.getNodeValue());  
                     // Shift cells
                     for(int k=0;k<newIdx-curIdx;k++)
                        values.add("");
                     curIdx = newIdx;                 
                   } catch( NumberFormatException e) {
                     System.out.println("Warning, incorrect index attribute.");
                   }
                 }
                 NodeList children2 = child1.getChildNodes();
                 int length2 = children2.getLength();
                 for(int j=0;j<length2;j++) {
                   Node child2 = children2.item(j);
                   if("Data".equals(child2.getNodeName())) {
                     values.add(child2.getFirstChild().getNodeValue());
                     curIdx++;
                   }
                 }
     
               }
            }
     
            // Last columns
            for(int k=curIdx;k<=9;k++)
              values.add("");
     
            return values;
        }  
     
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new inflectionapplet().setVisible(true);
                }
            });
        }
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  16. #16
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    Par défaut
    J'aurais voulu avoir le type complet, nom du package inclus.

    Merci.

    Vincent
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  17. #17
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut
    bonjour,
    les voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    javax.xml.parsers.DocumentBuilder
    org.w3c.dom.Document
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  18. #18
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    Par défaut
    Ce serait pas MAT.xml au lieu de mat.xml, puisque d'après tes sources MAT.xml est en majuscule et toi tu recheches un mat.xml en minuscule.

    Et si tu pouvais nous envoyer le contenu du JAr, ce serait bien aussi.

    Vincent
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  19. #19
    Membre habitué Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Points : 149
    Points
    149
    Par défaut
    bonsoir,
    Ce serait pas MAT.xml au lieu de mat.xml, puisque d'après tes sources MAT.xml est en majuscule et toi tu recheches un mat.xml en minuscule.
    si, mais dans une URL ça ne devrait faire aucune difference.
    Et si tu pouvais nous envoyer le contenu du JAr, ce serait bien aussi.
    je joint le Jar et les sources:
    http://www.sendspace.com/file/y4c1an

    PS: pour essayer l'aplet, j'utilise le fichier inflection.html qui se trouve dans build.
    "Celui qui n'a jamais fait d'erreurs n'a jamais rien essayé"A. Einstein
    "La différence entre la stupidité et le génie est que le génie a ses limites"A. Einstein
    "c'est en forgeant qu'on devient forgeron"

  20. #20
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    Par défaut
    Si justement. Dans une URL, ca a son importance !!!!

    Vincent
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. fermer une JFrame qui est lancé par un applet
    Par lucky31 dans le forum Applets
    Réponses: 1
    Dernier message: 14/04/2009, 10h59
  2. Difference entre frame et Jframe ? Button et Jbutton etc ?
    Par Archange21 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 16/03/2008, 22h58
  3. applet qui ouvre une jframe
    Par jayjay.f dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 01/03/2007, 20h07
  4. applet avec different JRE1.4 et JRE 1.5
    Par nazimb dans le forum Applets
    Réponses: 1
    Dernier message: 22/06/2006, 16h32
  5. [Applet][JFrame]Mouseclick
    Par MarcAn dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 28/04/2006, 00h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo