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

Composants Java Discussion :

Arbres en java


Sujet :

Composants Java

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Arbres en java
    Bonjour
    Je travail mon pfe, et je trouves un probleme dans l'arbre (Jtree) je travail en java (swing). quand j' excutes j'ai des erreurs.
    voilà les erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Exception in thread "main" java.lang.NullPointerException
            at Arbres.ajouterFichiers(Arbres.java:30)
            at Arbres.construireArbre(Arbres.java:60)
            at Arbres.<init>(Arbres.java:91)
            at Arbres.main(Arbres.java:99)
    Voila mon code :

    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    /**
     *
     * @author Rihab
     */
    import javax.swing.*;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.*;
    import java.util.*;
    import javax.imageio.ImageIO;
    import javax.swing.event.*;
    import javax.swing.tree.*;
     
    public class Arbres extends JFrame implements TreeSelectionListener {
       private JTree arbre;
       private DefaultMutableTreeNode racine;
       private DefaultMutableTreeNode images;
       private DefaultMutableTreeNode autre;
       private Vue vue = new Vue();
       private String répertoire = "C:/Photos/";
     
       private void ajouterFichiers() {
          File fichiers = new File(répertoire);
          ArrayList<String> liste = new ArrayList<String>();
          for (String nom : fichiers.list()) liste.add(nom);
          Enumeration recherche = images.children();
          while (recherche.hasMoreElements()) {
             DefaultMutableTreeNode noeud = (DefaultMutableTreeNode) recherche.nextElement();
             for (String nom : liste) {
                String extension = nom.split("\\.")[1];
                if (extension.equalsIgnoreCase(noeud.toString()))
                   noeud.add(new DefaultMutableTreeNode(nom, false));
             }
          }
          for (DefaultMutableTreeNode noeud = images.getFirstLeaf(); noeud !=null; noeud = noeud.getNextLeaf())
             liste.remove(noeud.toString());
          for (String nom : liste) autre.add(new DefaultMutableTreeNode(nom, false));
      }
     
        private void construireArbre() {
          racine = new DefaultMutableTreeNode("Fichiers", true);
          images = new DefaultMutableTreeNode("Images", true);
          DefaultMutableTreeNode jpeg = new DefaultMutableTreeNode("JPG", true);
          DefaultMutableTreeNode gif = new DefaultMutableTreeNode("GIF", true);
          DefaultMutableTreeNode png = new DefaultMutableTreeNode("PNG", true);
          autre = new DefaultMutableTreeNode("Autre", true);
          racine.add(images);
          racine.add(autre);
          images.add(jpeg);
          images.add(gif);
          images.add(png);
          arbre = new JTree(racine, true);
          arbre.setPreferredSize(new Dimension(180, 1000));
          arbre.addTreeSelectionListener(this);
          ajouterFichiers();
       }
     
       private class Vue extends JComponent
       {
          private BufferedImage photo;
          private double ratio;
     
          @Override
          protected void paintComponent(Graphics g) {
             if (photo!=null)  g.drawImage(photo, 0, 0, getWidth(), (int)(getWidth()/ratio), null);
          }
     
          public void setPhoto(File fichier) {
             try {
                photo = ImageIO.read(fichier);
                ratio = (double)photo.getWidth() / photo.getHeight();
                repaint();
             }
             catch (IOException ex) { setTitle("Impossible de lire le fichier");}
          }
       }
     
       public void valueChanged(TreeSelectionEvent e) {
          if (arbre.getSelectionPath()!=null) {
             String nom = arbre.getSelectionPath().getLastPathComponent().toString();
             vue.setPhoto(new File("C:/Photos/"+nom));
          }
       }
        public Arbres() {
          super("Images");
          construireArbre();
          add(new JScrollPane(arbre), BorderLayout.WEST);
          add(vue);
          setSize(540, 300);
          setDefaultCloseOperation(EXIT_ON_CLOSE);
          setVisible(true);
       }
     
       public static void main(String[] args) { new Arbres(); }
    }

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    "fichiers.list()" peut renvoyer null
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 187
    Points : 434
    Points
    434
    Par défaut
    Bonjour,

    Cf. javadoc de la méthode list() :

    Returns:
    An array of strings naming the files and directories in the directory denoted by this abstract pathname. The array will be empty if the directory is empty. Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs.
    En gros ton objet File pointe probablement sur un fichier ou quelque chose d’inaccessible.
    Essaie de tester isDirectory() ou exists().

    En passant il vaut mieux "remplir"ton arbre via à modèle (JTreeModel de mémoire) : cela évite de mélanger des algorithmes mêlant logique de récupération des données et création de noeuds graphiques > plus lisible

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Points : 73
    Points
    73
    Par défaut
    Interface : TreeModel
    Classe : DefaultTreeModel


Discussions similaires

  1. arbre en java
    Par vincesdf dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 22/07/2008, 13h17
  2. Structure de donnée de type arbre en Java ?
    Par joseph_p dans le forum Général Java
    Réponses: 17
    Dernier message: 16/09/2006, 15h20
  3. representation d'arbres en Java
    Par yarf dans le forum Langage
    Réponses: 7
    Dernier message: 16/08/2006, 21h37
  4. [Débutant][Conception] Arbre en JAVA
    Par moutey dans le forum Général Java
    Réponses: 5
    Dernier message: 14/03/2006, 13h27
  5. dessiner arbre en java question ?
    Par mortalius dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 05/11/2005, 00h31

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