Erreur java java.lang.IllegalArgumentExceptio
encours
Messages postés
121
Date d'inscription
Statut
Membre
Dernière intervention
-
encours Messages postés 121 Date d'inscription Statut Membre Dernière intervention -
encours Messages postés 121 Date d'inscription Statut Membre Dernière intervention -
bonjour,
lorsque j'utilise la classe que j'ai posté dans le dernier sujet
https://forums.commentcamarche.net/forum/affich-22985127-editer-jtable-contenant-des-entiers#p22988102
j'ai fais que lorsque je modifie une valeur dans la table et si elle est exacte selon la classe : => elle me modifieles valeurs d'autres cellules :
alors cela est fait : il me genere une erreur :
et cette erreur bizare :
moi quand je veux ajouter un article a la table je clique "ajouter"
un jdialog s'ouvre contenant les articles
qd je choisi un article et je valide une ligne s'ajoute dans ma table
si je modifie cette premiere ligne tout passe bien
alors le probleme se pose qd j'ajoute deux ou trois lignes sans les modifier puis je modifie directement la troisieme
Code Java :
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Number
at java.text.DecimalFormat.format(Unknown Source)
at java.text.Format.format(Unknown Source)
je souhaite que j'ai bien expliqué le pb
et meme l'erreur m'envoie a la linge deJDialog "setVisible(true);"
merci bien
lorsque j'utilise la classe que j'ai posté dans le dernier sujet
https://forums.commentcamarche.net/forum/affich-22985127-editer-jtable-contenant-des-entiers#p22988102
j'ai fais que lorsque je modifie une valeur dans la table et si elle est exacte selon la classe : => elle me modifieles valeurs d'autres cellules :
alors cela est fait : il me genere une erreur :
et cette erreur bizare :
moi quand je veux ajouter un article a la table je clique "ajouter"
un jdialog s'ouvre contenant les articles
qd je choisi un article et je valide une ligne s'ajoute dans ma table
si je modifie cette premiere ligne tout passe bien
alors le probleme se pose qd j'ajoute deux ou trois lignes sans les modifier puis je modifie directement la troisieme
Code Java :
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Number
at java.text.DecimalFormat.format(Unknown Source)
at java.text.Format.format(Unknown Source)
je souhaite que j'ai bien expliqué le pb
et meme l'erreur m'envoie a la linge deJDialog "setVisible(true);"
merci bien
A voir également:
- Erreur java java.lang.IllegalArgumentExceptio
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
12 réponses
c'est ca le probleme : elle ne m'envoie a aucune ligne sauf celle de setVisible(true) de la JDialog qui contient la table
voici toute l'erreur :
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Number at java.text.DecimalFormat.format(Unknown Source) at java.text.Format.format(Unknown Source) at javax.swing.JTable$DoubleRenderer.setValue(Unknown Source) at javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(Unknown Source) at javax.swing.JTable.prepareRenderer(Unknown Source) at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source) at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source) at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source) at javax.swing.plaf.ComponentUI.update(Unknown Source) at javax.swing.JComponent.paintComponent(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintToOffscreen(Unknown Source) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source) at javax.swing.RepaintManager$PaintManager.paint(Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent._paintImmediately(Unknown Source) at javax.swing.JComponent.paintImmediately(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.access$700(Unknown Source) at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at java.awt.Component.show(Unknown Source) at java.awt.Component.setVisible(Unknown Source) at java.awt.Window.setVisible(Unknown Source) at java.awt.Dialog.setVisible(Unknown Source) at com.kha.commande_f.new_commande.showZDialog(new_commande.java:70) at com.kha.commande_f.commandes_frn$2.actionPerformed(commandes_frn.java:73) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Essaye de demander explicitement l'affichage de la trace. Le problème c'est que c'est sur un thread et que je pense que le filtrage va perdre le fil, mais ça vaut le coup d'essayer.
Dans ton main, tu englobes tout ton code par celui-ci :
Dans ton main, tu englobes tout ton code par celui-ci :
try { // tout ton code de la méthode main } catch (java.lang.IllegalArgumentException e) { e.printStackTrace(); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
et comme j'ai deja dit lorsque j'ajoute un seul article (une seule ligne dans la table ) et je la modifie ca marche
et lorsque j'ajoute trois ou deux et je modifie directement la ligne deux ou trois sans modifier la premiere => c'est l'erreur par contre si je modifie la premiere puis ce qui apres c'est bien
tout conseil ou proposition est apprecié
merci
et lorsque j'ajoute trois ou deux et je modifie directement la ligne deux ou trois sans modifier la premiere => c'est l'erreur par contre si je modifie la premiere puis ce qui apres c'est bien
tout conseil ou proposition est apprecié
merci
com.kha.commande_f.new_commande.showZDialog(new_commande.java:70) com.kha.commande_f.commandes_frn$2.actionPerformed(commandes_frn.java:73)
Est-ce que ces lignes font partie de ton code ? Est-ce qu'on peux les voir (éventuellement dans leur contexte)
Si je me réfère à la documentation, DecimalFormat(String pattern) génère IllegalArgumentException lorsque le pattern est invalide. Donc il faudrait voir si il n'y a pas une erreur de ce côté là : un pattern qui pourrait être mal édité quelque part.
voici la premiere :
et voici la deisieme
la premiere sert pour lancer la JDialog contenant le JTable
la deusieme : c'est la methode nc.showZDialog(); qui contient la ligne premiere
this.setVisible(true);
et voici la deisieme
info_commande ic = nc.showZDialog();
la premiere sert pour lancer la JDialog contenant le JTable
la deusieme : c'est la methode nc.showZDialog(); qui contient la ligne premiere
public info_commande showZDialog(){
try{
this.setVisible(true);
}catch(java.lang.IllegalArgumentException e)
{
System.out.println("suis je "+e);
e.printStackTrace();
}
return this.ic;
}
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
info_commande ic = nc.showZDialog();
}
});
try{
this.setVisible(true);
}catch(java.lang.IllegalArgumentException e)
{
System.out.println("suis je "+e);
e.printStackTrace();
}
return this.ic;
}
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
info_commande ic = nc.showZDialog();
}
});
Si je me réfère à la documentation, DecimalFormat(String pattern) génère IllegalArgumentException lorsque le pattern est invalide. Donc il faudrait voir si il n'y a pas une erreur de ce côté là : un pattern qui pourrait être mal édité quelque part.
j'ai pas compris cette histoire de ce pattern
de plus est ce que seul ce decimalformat qui leve cet exception
Lorsque ta JTable édite une valeur, elle invoque un éditeur de format décimal basé sur un pattern (c'est à dire une expression régulière) qui visiblement est censé reconnaître un Number, mais qui une fois appelé, probablement via formatToCharacterIterator, lève l'exception car la valeur passé n'est pas un Number valide.
Cela peut venir du fait que lorsque tu édites ta table, à un moment, les valeurs prises ne sont pas au format Number.
Cela peut venir du fait que lorsque tu édites ta table, à un moment, les valeurs prises ne sont pas au format Number.
( je vous remerci pour votre aide a tout moment )
et quelle est la solution
et ce qui m'enbete c'est ce que j'ai dit dans la reponse de 15:12
et quelle est la solution
et ce qui m'enbete c'est ce que j'ai dit dans la reponse de 15:12
Est-ce que tu as une valeur par défaut compatible avec le format Number ou est-ce que les lignes non modifiées sont vides ? Dans ce cas essaye de toujours avoir des valeurs correctes.
Mais j'avoue que cela dépend grandement de ton code, et avec les seules lignes que j'ai je peux difficilement te dire d'où vient véritablement le problème, ou comment le modifier.
Le code que j'avais adapté l'autre jours sur les double, je ne sais pas trop ce qu'il faisait vu que je ne l'ai pas testé, mais je l'avait trouvé assez compliqué, je ne suis cependant pas certain que l'erreur vienne de là vu qu'il y avait quand même pas mal de gestion d'exception.
Et si l'erreur vient du reste de ton code, je ne peux pas trop deviner d'où ça vient, vu que je ne l'ai pas et que je ne sais même pas ce qu'il est censé faire !
Mais j'avoue que cela dépend grandement de ton code, et avec les seules lignes que j'ai je peux difficilement te dire d'où vient véritablement le problème, ou comment le modifier.
Le code que j'avais adapté l'autre jours sur les double, je ne sais pas trop ce qu'il faisait vu que je ne l'ai pas testé, mais je l'avait trouvé assez compliqué, je ne suis cependant pas certain que l'erreur vienne de là vu qu'il y avait quand même pas mal de gestion d'exception.
Et si l'erreur vient du reste de ton code, je ne peux pas trop deviner d'où ça vient, vu que je ne l'ai pas et que je ne sais même pas ce qu'il est censé faire !