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

avec Java Discussion :

Exception in thread "main"


Sujet :

avec Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut Exception in thread "main"
    bonjour,
    lors de la compilation, mon prg s'affiche le message suivante:
    moi,j'ai rien trouver particulier,quelqu'un peut m'aider svp.

    Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    The type new TreeModelListener(){} must implement the inherited abstract method TreeModelListener.treeNodesRemoved(TreeModelEvent)
    arbre cannot be resolved or is not a field

    at Fenetre.listRoot(Fenetre.java:70)
    at Fenetre.<init>(Fenetre.java:42)
    at Fenetre.main(Fenetre.java:160)

    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
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
     
    import java.awt.BorderLayout; 
    import java.awt.ScrollPane;
    import java.io.File;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTree;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
    import javax.swing.UnsupportedLookAndFeelException;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableColumnModelListener;
    import javax.swing.event.TreeModelEvent;
    import javax.swing.event.TreeModelListener;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeModel;
     
     
    public class Fenetre extends JFrame 
    {
      private JTree arbre;
      private DefaultMutableTreeNode racine;
     
      private DefaultTreeModel model;
     
      public Fenetre()
      {
    	  this.setSize(200,300);
    	  this.setLocationRelativeTo(null);
    	  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	  this.setTitle("JTree");
    	  listRoot();
    	  this.setVisible(true);
      }
     
      private void listRoot()
      {
    	  this.racine=new DefaultMutableTreeNode();
    	  int count=0;
    	  for(File file:File.listRoots())
    	  {
    		  DefaultMutableTreeNode lecteur=new DefaultMutableTreeNode(file.getAbsolutePath());
    		  try
    		  {
    			  for(File nom:file.listFiles())
    			  {
    			    DefaultMutableTreeNode node=new DefaultMutableTreeNode(nom.getName()+"\\");
    				lecteur.add(this.listFile(nom,node));
    			  }
    		  }
    		  catch(NullPointerException e)
    		  {
     
    		  }
    		  this.racine.add(lecteur);
    		  }
     
    	  this.model=new DefaultTreeModel(this.racine);
     
    	  this.model.addTreeModelListener(new TreeModelListener()
    	  {
    		  /* Méthode appelée lorsqu'un noeud a changé */
    		public void treeNodesChanged(TreeModelEvent evt)
    		{
    			System.out.println("Changment dans l'arbre");
    			Object[]listNoeuds=evt.getChildren();
    			int[]listIndices=evt.getChildIndices();
    			for(int i=0;i<listNoeuds.length;i++)
    			{
    				System.out.println("Index"+listIndices[i]+", nouvelle valeur:"+listNoeuds[i]);
    			}
    		}
     
    		/* Méthode appelée lorsqu'un noeud est inséré */
    		public void treeNodesInserted(TreeModelEvent event)
    		{
    			System.out.println("Un noeud a été inséré!");
    		}
     
    		/* Méthode appelée lorsqu'un noeud est supprimé */
    		public void treeNodesRemouved(TreeModelEvent event)
    		{
    			System.out.println("Un noeud a été retiré!");
    		}
     
    		/* Méthode appelée lorsque la structure d'un noeud a été modifiée */
    		public void treeStructureChanged(TreeModelEvent event)
    		{
    			System.out.println("Un noeud a été d'un  noeud a changé!");
    		}
    	  });
     
     
    	  arbre=new JTree();
    	  arbre.setModel(model).
    	  arbre.setRootVisible(false);
    	  arbre.setEditable(true);
    	  this.getContentPane().add(new JScrollPane(arbre),BorderLayout.CENTER);
    	  }
     
      private DefaultMutableTreeNode listFile(File file,DefaultMutableTreeNode node)
      {
    	  int count=0;
    	  if(file.isFile())
    		  return new DefaultMutableTreeNode(file.getName());
    	  else
    	  {
    		  for(File nom:file.listFiles())
    		  {
    			  count++;
    			  if(count>3)
    			  {
    				  DefaultMutableTreeNode subNode;
    				  if(nom.isDirectory())
    				  {
    					  subNode=new DefaultMutableTreeNode(nom.getName()+"\\");
    					  node.add(this.listFile(nom,subNode));
    				  }
    				  else
    				  {
    					  subNode=new DefaultMutableTreeNode(nom.getName());
    				  }
    				  node.add(subNode);
    			  }
    		  }
    		  return node;
    	  }
      }
      public static void main(String[]args)
      {
     
    	  try
    	  {
    		  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    	  }
    	  catch(InstantiationException e)
    	  {}
    	  catch(ClassNotFoundException e)
    	  {}
    	  catch(UnsupportedLookAndFeelException e)
    	  {}
    	  catch(IllegalAccessException e)
    	  {}
    	  Fenetre fen= new Fenetre();
      }
      }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par domxaline Voir le message
    moi,j'ai rien trouver particulier,quelqu'un peut m'aider svp.
    Hum. Pourrais-tu nous expliquer, avec tes mots à toi et en français, ce que dit ce message d'erreur ?
    Je trouve pas qu'il y ait besoin de chercher ailleurs que là...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    bonjour
    vous êtes trop dur avec moi,peut être vous avez bac+++++++++++;
    moi j'ai que cp++; avec mon cp, j'essaie apprendre java.
    j'ai corrigé mon erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /* Méthode appelée lorsqu'un noeud est supprimé */
    		public void treeNodesRemoved(TreeModelEvent event)
    		{
    			System.out.println("Un noeud a été retiré!");
    		}
    pourtant,je n'arrive pas renommer mes fichiers,aucun erreur lors de compilation et execution.
    aidez moi svp

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Ou dans ton code renommes tu tes fichiers je ne vois pas.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    j'ai clique sur le répertoire et renomme;quand je clique ailleurs,
    le nom reste, tell qu'elle était avant.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le nom reste comme avant où ? Dans ton JTree ? Ou parles-tu des fichiers correspondants sur le disque, ce qui serait normal, puisque changer le nom dans le modèle de l'arbre n'a pas d'impact sur les noms de fichiers sur le disque : pour que cela soit le cas, il faut que tu programmes ça.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    Le nom reste comme avant où ? Dans ton JTree ?
    oui

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Par défaut, la validation d'édition du nom d'un nœud dans un JTree est faite sur l'appui de la touche Entrée. Si tu cliques sur un autre nœud, la saisie est annulée.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    ok, j'ai compris
    Quand je recommence à exécuter le prg,
    le changement n'est pas pris en compte,
    est ce que c'est normal?

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    C'est ce que je te disais dans un de mes précédents posts : le fait que tu changes le nom dans l'arbre en mémoire n'a pas de répercussion sur le fichier associé : c'est à toi d'implémenter cette répercussion, quand la valeur change. Tu as déjà la partie qui réagit à l'évènement dans treeNodesChanged(), il te reste à prendre en compte l'évenement et de déterminer ce qu'il faut faire pour que le fichier associé soit renommé en conséquence. Visiblement, le code que tu as utilisé, vient du tutoriel de JM Doudoux : continue à le lire, pour voir comment exploiter les éléments qui sont dans l'évènement et comme associer les treenode avec les fichiers, pour voir les "renommer".
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    ok merci beaucoup

Discussions similaires

  1. Exception in thread "main" java.lang.ArrayIndexOut
    Par Poseidon62 dans le forum Concurrence et multi-thread
    Réponses: 6
    Dernier message: 04/11/2005, 01h38

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