Erreur java java.lang.IllegalArgumentExceptio

Fermé
encours Messages postés 121 Date d'inscription mercredi 3 août 2011 Statut Membre Dernière intervention 31 mars 2014 - 27 août 2011 à 13:32
encours Messages postés 121 Date d'inscription mercredi 3 août 2011 Statut Membre Dernière intervention 31 mars 2014 - 28 août 2011 à 12:49
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
A voir également:

12 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
27 août 2011 à 14:34
Ce serait bien d'avoir la ou les lignes de code incriminées par l'exception.
0
encours Messages postés 121 Date d'inscription mercredi 3 août 2011 Statut Membre Dernière intervention 31 mars 2014 1
27 août 2011 à 14:59
c'est ca le probleme : elle ne m'envoie a aucune ligne sauf celle de setVisible(true) de la JDialog qui contient la table
0
encours Messages postés 121 Date d'inscription mercredi 3 août 2011 Statut Membre Dernière intervention 31 mars 2014 1
27 août 2011 à 15:07
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)

0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
27 août 2011 à 15:07
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 :

try 
{
    // tout ton code de la méthode main
}
catch (java.lang.IllegalArgumentException e)
{
    e.printStackTrace();
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
encours Messages postés 121 Date d'inscription mercredi 3 août 2011 Statut Membre Dernière intervention 31 mars 2014 1
27 août 2011 à 15:12
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
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
27 août 2011 à 15:19
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.
0
encours Messages postés 121 Date d'inscription mercredi 3 août 2011 Statut Membre Dernière intervention 31 mars 2014 1
27 août 2011 à 15:26
voici la 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
0
encours Messages postés 121 Date d'inscription mercredi 3 août 2011 Statut Membre Dernière intervention 31 mars 2014 1
27 août 2011 à 15:27
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();
}
});
0
encours Messages postés 121 Date d'inscription mercredi 3 août 2011 Statut Membre Dernière intervention 31 mars 2014 1
27 août 2011 à 15:33
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
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
27 août 2011 à 15:56
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.
0
encours Messages postés 121 Date d'inscription mercredi 3 août 2011 Statut Membre Dernière intervention 31 mars 2014 1
Modifié par encours le 27/08/2011 à 16:08
( 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
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
27 août 2011 à 16:23
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 !
0
encours Messages postés 121 Date d'inscription mercredi 3 août 2011 Statut Membre Dernière intervention 31 mars 2014 1
28 août 2011 à 12:49
merci pour ta participation et ton aide en tout cas
0