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 :

Sauvegarde d'un JTree et bouton d'ajout de JTextField dans JOptionPane


Sujet :

Composants Java

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut Sauvegarde d'un JTree et bouton d'ajout de JTextField dans JOptionPane
    Bonjour,

    J'ai deux questions.

    Premièrement j'ai un JTree que je souhaite sauver, voici mon code pour le sauvegarder:

    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
     
     public void save(JTree tree){//ne garde pas les retours à la ligne
    	 	DefaultMutableTreeNode node1;
    	 	DefaultMutableTreeNode node;
    	 	JFileChooser chooser = new JFileChooser();
    	 	System.out.println("1");
    	 		chooser.setApproveButtonText("Ok");
    	 		chooser.showOpenDialog(null);
    	 		if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){	
    	 			System.out.println("2");
    	 			try{
     
    			 		FileWriter fw = new FileWriter(chooser.getSelectedFile());
    			 		chooser.setApproveButtonText("Ok"); //intitulé du bouto
    			 		System.out.println("3");
    			 		BufferedWriter output = new BufferedWriter(fw);
    			 		String texte = centre.getTextArea()+"\r\n";
    					output.write(texte+"\r\n");
    					System.out.println("4");
    					DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
    					DefaultMutableTreeNode racine = (DefaultMutableTreeNode) model.getRoot();
    					System.out.println("5");
    					int a = racine.getChildCount();
    					int b;
    					System.out.println("6");
    					for(int i = 1; i<=a;i++){
    						System.out.println("7");
    						node = (DefaultMutableTreeNode)racine.getChildAt(i);
    						output.write(node.toString());
    						b = node.getChildCount();
    						for(int j =1;j<=a;j++){
    							System.out.println("8");
    							node1 = (DefaultMutableTreeNode)node.getChildAt(j);
    							output.write(node1.toString());
    							System.out.println("9");
    						}
    						output.write("\r\n");
    						System.out.println("10");
    					}
    					output.flush();
    					output.close();
    					System.out.println("fichier enregistré");
    	 			}
    	 			catch(IOException ioe){
    					System.out.print("Erreur : ");
    					ioe.printStackTrace();
    				}
    			}
    	 }
    Sachant que mon arbre est sur trois niveaux. Voici l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
         [java] 1
         [java] Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
         [java] 2
         [java] 3
         [java]     at control.RWFile.save(Unknown Source)4
         [java]
         [java]     at control.MyActionListener.actionPerformed(Unknown Source)
         [java]     at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    Un fichier vide est créé.

    Deuxièmement, j'ai un JOptionPane qui contient un JPanel JOptionPane.showMessageDialog(null,req,"Blabla",JOptionPane.PLAIN_MESSAGE); lui-même contenant trois JTextField de base et un bouton permettant d'ajouter un JTextField à l'optionPane. J'ai ajouté des écouteurs dans ma classe Action Listener voici 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
     
    if(evt.getSource()==centre.getRequete()){
    			System.out.println("1");
    			Requete req = new Requete();//Probleme ici
    			and = new ArrayList<String>();
    			System.out.println("2");
    			req.addListener(this);
    			System.out.println("3");
    			if(evt.getSource()==req.getButtonAdd()){
    				System.out.println("5");
    				field = new JTextField();
    				req.add(field);
    				and.add(field.getText());
    			}
    			JOptionPane.showMessageDialog(null,req,"Faire une requete",JOptionPane.PLAIN_MESSAGE);
    }
    Lorsque j'appuie sur mon bouton rien ne se passe.

    Merci d'avance

  2. #2
    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,

    1. Quand tu as une NullPointerException, il te suffit de regarder la stack trace pour savoir où aller regarder et chercher ce qui pourrait être null dans la ligne de code concernée. Le mode debug peut également te permettre de plus facilement repérer ce qui est null. Pour nous, c'est déjà beaucoup plus difficile : on n'a pas tout ton code, les numéros de ligne sont probablement décalés et, bien sûr, on ne peut pas tester en debug ton application. Je dirais au pif que c'est tree qui est null, mais vraiment au pur pif.

    2. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      int a = racine.getChildCount();
      					int b;
      					System.out.println("6");
      					for(int i = 1; i<=a;i++){
      Comme dans quasiment tous les cas de listes, tableaux et assimilés en Java, les indices vont de 0 à n exclu, pas de 1 à n inclus !

    3. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      chooser.setApproveButtonText("Ok");
      	 		chooser.showOpenDialog(null);
      	 		if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
      Pourquoi afficher deux dialogues ? Un seul suffit, surtout que tu n'exploites pas la réponse du premier.

    4. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      FileWriter fw = new FileWriter(chooser.getSelectedFile());
      chooser.setApproveButtonText("Ok"); //intitulé du bouto
      Pourquoi changer le nom du bouton du FileChooser ici ? Non seulement il a déjà été changé pour la même valeur avant, mais ça fait longtemps que le dialogue n'est plus affiché et ne le sera plus ensuite.
    5. Ta gestion de la fermeture de flux est à revoir : en cas d'exception, le fichier ne sera pas fermé (le flush() est inutile si tu fais un close()). L'utilisation d'un try-with-resource te simplifierait bien tout ç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.

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    Je ne connaissais pas le try-with-resource. J'ai modifié mon code comme vous avez dit mais j'ai toujours une erreur et mon fichier est toujours vide.

    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
     
    public void save(JTree tree){//ne garde pas les retours à la ligne
    	 	DefaultMutableTreeNode node1;
    	 	DefaultMutableTreeNode node;
    	 	JFileChooser chooser = new JFileChooser();
    	 	System.out.println("1");
    	 		chooser.showOpenDialog(null);
    	 		if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){	
    	 			System.out.println("2");
    	 			try{
     
    			 		FileWriter fw = new FileWriter(chooser.getSelectedFile());
    			 		System.out.println("3");
    			 		BufferedWriter output = new BufferedWriter(fw);
    			 		String texte = centre.getTextArea()+"\r\n";
    					output.write(texte+"\r\n");
    					System.out.println("4");
    					DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
    					DefaultMutableTreeNode racine = (DefaultMutableTreeNode) model.getRoot();
    					System.out.println("5");
    					int a = racine.getChildCount();
    					int b;
    					System.out.println("6");
    					for(int i = 0; i<a;i++){
    						System.out.println("7");
    						node = (DefaultMutableTreeNode)racine.getChildAt(i);
    						output.write(node.toString());
    						b = node.getChildCount();
    						for(int j =0;j<a;j++){
    							System.out.println("8");
    							node1 = (DefaultMutableTreeNode)node.getChildAt(j);
    							output.write(node1.toString());
    							System.out.println("9");
    						}
    						output.write("\r\n");
    						System.out.println("10");
    					}
    					output.flush();
    					output.close();
    					System.out.println("fichier enregistré");
    	 			}
    	 			catch(IOException ioe){
    					System.out.print("Erreur : ");
    					ioe.printStackTrace();
    				}
    			}
    	 }
    Et mon erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException3
    Je viens de voir que j'ai une ligne de code : FileWriter fw = new FileWriter(chooser.getSelectedFile()); mais l'utilisateur n'a pas à selectionné de fichier puisqu'il souhaite enregistrer et non sauver le fichier. De plus, l'optionPane s'affiche deux fois je pensais qu'en supprimant le double dialogue ca allait marcher mais non.

  4. #4
    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
    Citation Envoyé par Akame14 Voir le message
    Je ne connaissais pas le try-with-resource. J'ai modifié mon code comme vous avez dit mais j'ai toujours une erreur et mon fichier est toujours vide.
    Je ne vois pas trop où tu aurais modifié ton code. Je ne vois pas de try-with-resource, je vois toujours 2 dialogues ouverts successivement. Ah, si, tu as modifié le parcours des nodes.
    Citation Envoyé par Akame14 Voir le message
    Je viens de voir que j'ai une ligne de code : FileWriter fw = new FileWriter(chooser.getSelectedFile()); mais l'utilisateur n'a pas à selectionné de fichier puisqu'il souhaite enregistrer et non sauver le fichier.
    Forcément, si aucun fichier n'est sélectionné, getSelectedFile() retourne null et la construction du FileWriter va planter. J'imaginais que au moins pour tes tests tu sélectionnais un fichier. Le JFileChooser n'empêche pas effectivement un approve et une selection nulle. Il faut traiter le cas dans le if. Attention, parce qu'on peut également choisir un dossier (donc à gérer aussi comme cas).
    En revanche, je ne vois pas trop la différence que tu fais entre "enregistrer" et "sauver". Mais, en tout cas, pourquoi afficher un dialogue de choix de fichiers si ce n'est pour choisir un fichier (ou un dossier) ? Cela dit tu affiches un dialogue de sélection de fichier pour lecture (open), donc déjà là il y a un problème à ce niveau.

    Citation Envoyé par Akame14 Voir le message
    De plus, l'optionPane s'affiche deux fois je pensais qu'en supprimant le double dialogue ca allait marcher mais non.
    Bah, normalement oui, mais il faut le supprimer pour que ça le supprime.
    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.

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    D'accord mais qu'est-ce que je met dans mon FileWriter = new FileWriter? Etant donné que c'est la personne qui choisit le nom du fichier.
    Concernant le try with ressource j'ai trouvé des choses comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try {
         try (BufferedReader bufferedReader = new BufferedReader(new
             FileReader("C:/Users/jm/AppData/Local/Temp/monfichier.txt"))) {
            String ligne=null;
            while ((ligne = bufferedReader.readLine()) != null) {
                 System.out.println(ligne);
            }
         }
    }catch (IOException ioe) {
         ioe.printStackTrace();
    }
    je dois donc mettre l'initalisation de mon filewriter à la place du bufferedReader dans cet exemple?

  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
    Citation Envoyé par Akame14 Voir le message
    D'accord mais qu'est-ce que je met dans mon FileWriter = new FileWriter? Etant donné que c'est la personne qui choisit le nom du fichier.
    La méthode getSelectedFile() retourne bien ce que l'utilisateur choisit. Mais ça peut être rien (null), un fichier ou un dossier. Cela peut être un fichier existant ou pas, un dossier existant ou pas.
    Tu peux configurer le JFileChooser pour empêcher la sélection de dossier.

    Donc globalement, il faudrait faire quelque chose comme ça :

    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
    File file = chooser.getSelectedFile();
    if ( file==null ) {
        // rien, on annule la sauvegarde (ou on pourrait redemander un fichier à l'utilisateur)
     
    } else if ( file.isDirectory() ) {
        // c'est un dossier qui existe
        // soit tu annules, soit tu fais un fichier par défaut (mais attention à l'écrasement possible d'un fichier déjà existant, il faudra par exemple faire une boucle comme ça) :
        File targetFile = new File(file, "sans nom.text");
        boolean newFile = targetFile.createNewFile(); 
        for(int i=1;  !newFile; i++) {
            File targetFile = new File(file, "sans nom ("+i+").text");
            newFile = targetFile.createNewFile(); 
        } 
     
    }
    else if ( file.isFile() ) {
           // c'est une fichier qui existe : il faut éventuellement demander à l'utilisateur de confirmer qu'il veut bien remplacer le fichier
    }
    else {
           // le fichier n'existe pas
           file.getParentFile().mkdirs(); // on créé les dossiers au cas où ils n'existeraient pas déjà
           file.createNewFile(); // on créé éventuellement le fichier pour qu'il existe
    }
    Citation Envoyé par Akame14 Voir le message
    Concernant le try with ressource j'ai trouvé des choses comme ça:
    Les deux trys peuvent être fusionnés, et on peut simplement faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try(BufferedReader reader = Files.newBufferedReader(file.toPath()) {
     
    }
    catch(IOException e) {
          ... traitement ...
    }
    Seulement, ce code est fait pour lire, pas pour écrire....

    Citation Envoyé par Akame14 Voir le message
    je dois donc mettre l'initalisation de mon filewriter à la place du bufferedReader dans cet exemple?
    donc, oui, pour lire c'est un peu la même chose sauf qu'à la place de reader on met writer, à peu de choses près (voir les options possibles).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try(BufferedWriter writer = Files.newBufferedWriter(file.toPath()) {
     
    }
    catch(IOException e) {
          ... traitement ...
    }
    Mais dans le bloc, évidemment, on ne fait pas une boucle pour lire des lignes, mais on écrit.
    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 du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    J'ai essayé ton code et j'ai fais en sorte de redemander si le fichier est null mais ce que je ne comprends c'est que l'utilisateur n'as pas a selectionné le nom du fichier, il faut juste qu'il rentre le nom du fichier qu'il veux enregistrer. J'ai aussi une erreur :
    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
     
     Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
         [java]     at control.RWFile.save(Unknown Source)
         [java]     at control.MyActionListener.actionPerformed(Unknown Source)
         [java]     at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
         [java]     at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
         [java]     at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
         [java]     at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
         [java]     at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
         [java]     at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
         [java]     at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
         [java]     at java.awt.Component.processMouseEvent(Component.java:6535)
         [java]     at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
         [java]     at java.awt.Component.processEvent(Component.java:6300)
         [java]     at java.awt.Container.processEvent(Container.java:2236)
         [java]     at java.awt.Component.dispatchEventImpl(Component.java:4891)
         [java]     at java.awt.Container.dispatchEventImpl(Container.java:2294)
         [java]     at java.awt.Component.dispatchEvent(Component.java:4713)
         [java]     at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
         [java]     at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
         [java]     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
         [java]     at java.awt.Container.dispatchEventImpl(Container.java:2280)
         [java]     at java.awt.Window.dispatchEventImpl(Window.java:2750)
         [java]     at java.awt.Component.dispatchEvent(Component.java:4713)
         [java]     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
         [java]     at java.awt.EventQueue.access$500(EventQueue.java:97)
         [java]     at java.awt.EventQueue$3.run(EventQueue.java:709)
         [java]     at java.awt.EventQueue$3.run(EventQueue.java:703)
         [java]     at java.security.AccessController.doPrivileged(Native Method)
         [java]     at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
         [java]     at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
         [java]     at java.awt.EventQueue$4.run(EventQueue.java:731)
         [java]     at java.awt.EventQueue$4.run(EventQueue.java:729)
         [java]     at java.security.AccessController.doPrivileged(Native Method)
         [java]     at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
         [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
         [java]     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
         [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

  8. #8
    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
    Citation Envoyé par Akame14 Voir le message
    J'ai essayé ton code et j'ai fais en sorte de redemander si le fichier est null mais ce que je ne comprends c'est que l'utilisateur n'as pas a selectionné le nom du fichier, il faut juste qu'il rentre le nom du fichier qu'il veux enregistrer.
    C'est exactement pareil : qu'il saisisse un nom (de fichier qui existe ou n'existe pas) ou qu'il sélectionne un fichier dans la liste. On récupère le choix de l'utilisateur par getSelectedFile(), c'est tout.

    J'ai aussi une erreur :
    [CODE]
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    [java] at control.RWFile.save(Unknown Source)
    [/QUOTE]
    Je ne sais pas ce qu'il y a dans la ligne qui cause l'erreur, donc je ne peux rien savoir de la cause de l'erreur. Si tu ne me montres pas la ligne qui cause l'erreur, je ne pourrais rien faire pour toi. Et quand bien même, comme je ne peux pas connaître tout le process qui a conduit à cette ligne, je ne pourrais faire que des suputations. Je te l'ai déjà dit, il te suffit d'exécuter ton code en mode debug, en pas à pas, pour voir directement toi-même la cause de l'erreur. La lecture et l'interprétation d'un code a ses limites.
    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.

  9. #9
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    D'accord mais comment executes-t-on en mode pas à pas? je n'ai jamais fais ça

  10. #10
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    Je ne sais pas si c'était la bonne commande mais j'ai trouvé ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ..\src\control\RWFile.java:95: warning: [unchecked] unchecked call to ArrayList(Collection<? extends E>) as a member of the raw type ArrayList
                            mdp = new ArrayList(Arrays.asList(allMdp));
                                  ^
      where E is a type-variable:
        E extends Object declared in class ArrayList
    ..\src\control\RWFile.java:95: warning: [unchecked] unchecked conversion
                            mdp = new ArrayList(Arrays.asList(allMdp));
                                  ^
      required: ArrayList<String>
      found:    ArrayList
    2 warnings

  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 une trace de compile ça ! On ne risque pas d'y voir une erreur d'exécution.

    C'est dans l'idée d'exécuter ton code en mode debug que tu as fait ça ? Tu ne connais pas le mode debug ? Tu utilises quel EDI ?
    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 du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    Eh bien j'utilise le Java normal JDK je ne sais pas trop si c'est ça l'EDI

  13. #13
    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
    L'EDI, c'est Eclipse, ou NetBeans, ou IntellijIdea... L'outil d'aide au développement, avec l'éditeur, tout ç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.

  14. #14
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    Je crois que nous n'en utilisons pas ca me dit rien

  15. #15
    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
    Tu veux dire que tu codes avec un éditeur de texte, compile en console avec javac et exécute avec java.exe ? Je te conseille vivement d'utiliser un EDI, ça te simplifierait grandement la programmation.
    Déboguer en console c'est possible certe, mais c'est ardu et fastidieux.
    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.

  16. #16
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    Je code avec sublime text et oui on executes dans la console, c'est la façon qu'on nous as appris en cours

  17. #17
    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 assurément très formateur de vous faire programmer avec un éditeur et de compiler en console. Mais contre productif (personne ne fait ça en entreprise, à part quelques furieux ou nostaligiques, et encore, ils vont plutôt utiliser VIM, voire plus roots encore ) M'enfin, on ferait mieux de vous apprendre à déboguer. Quand on a compilé 1 fois en console, on sait le faire. Cela ne sert pas à grand chose de faire un projet complet comme ça Mais bon admettons.
    Alors plus simple avant de passer au mode debug en console (!), ajouter une option de compilation pour avoir les numéros de lignes et références aux sources entre autres : -g au lieu de g:none, au moins tu auras dans ta trace le numéro de ligne où survient l'erreur !
    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.

  18. #18
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    Je doit être idiote mais ca ne marche pas. J'ai mis -g pendant la compilation et ca n'a pas mis d'erreur mais quand j'execute avec le -g ca me met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Unrecognized option: -g
    Error: Could not create the Java Virtual Machine.
    Error: A fatal exception has occurred. Program will exit.

  19. #19
    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
    Compilation = javac.
    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.

  20. #20
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2017
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    Lorsque je fais ca: javac -g -d ../class ../src/view/* je n'ai aucune erreur

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

Discussions similaires

  1. Ajouter contenu JTextField dans JTable
    Par laurent2403 dans le forum Débuter
    Réponses: 2
    Dernier message: 18/09/2012, 10h48
  2. Ajouter un JTextfield dans une JComboBox
    Par Ynostel dans le forum Composants
    Réponses: 5
    Dernier message: 03/02/2009, 10h53
  3. [FPDF] bouton d'ajout de Date dans un fichier PDF !..?
    Par kamaldev dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/04/2008, 11h23
  4. bouton qui ajoute un enregistrement dans une table
    Par petitours dans le forum Access
    Réponses: 1
    Dernier message: 06/12/2006, 13h33
  5. Réponses: 1
    Dernier message: 25/10/2006, 22h03

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