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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    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

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    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 690
    Par défaut
    Je dirait qu'il faut remplacer une JFame par une JApplet plutôt qu'une Applet

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    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.

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Par défaut
    bonsoir,
    quelcun aurait-il une petite idée?
    merci

  5. #5
    Expert confirmé


    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
    Par défaut
    il est placé où cet xml ? dans le jar ?

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    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

  7. #7
    Membre éclairé Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    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);
                }
            });
        }

  8. #8
    Expert confirmé


    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
    Par défaut
    J'aurais voulu avoir le type complet, nom du package inclus.

    Merci.

    Vincent

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    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

  10. #10
    Expert confirmé


    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
    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

  11. #11
    Membre éclairé Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    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.

+ Répondre à la discussion
Cette discussion est résolue.

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