[Java] Problème TableModel sous Linux uniquement

Problème TableModel sous Linux uniquement [Java] - Java - Programmation

Marsh Posté le 08-01-2007 à 15:22:10    

Bonjour
 
J'ai fais mon programme Java (Swing) sous Windows avec Java 5. J'ai essayé de l'exécuter sans soucis sous MacOSX avec la même version de Java. Par contre sous Linux ça se complique : Java (1.4.2) plante lors de l'ajout de données dans le modèle de JTable.
Voici l'erreur :

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
   at java.util.Vector.checkBoundExclusive(libgcj.so.7rh)
   at java.util.Vector.set(libgcj.so.7rh)
   at javax.swing.table.DefaultTableModel.setValueAt(libgcj.so.7rh)
   at IFEMonitoring.SebTable.add(SebTable.java:52)
   at IFEMonitoring.SebTable.<init>(SebTable.java:26)
   at IFEMonitoring.Monitoring.main(Monitoring.java:244)


Pourtant mon modèle comporte un nombre suffisant de lignes et de colonnes, je ne comprends pas pourquoi ça déborde, d'ailleurs 1 >= 1 à ce que je sache :p
Je n'ai pas la chance de pouvoir installer une version de Java plus récente sous Linux donc je ne pourrai pas tester avec la version 5.
Dans Eclipse (sous Windows) j'ai configuré le projet pour compiller en mode compatibilité Java 1.3 donc en théorie mon code est correct :??:
 
Je débute donc j'ai un peu de mal à comprendre cette erreur, merci de m'aider :hello:  :jap:

Reply

Marsh Posté le 08-01-2007 à 15:22:10   

Reply

Marsh Posté le 08-01-2007 à 16:04:52    

Je précise que c'est la méthode "DefaultTableModel.setValueAt(Object,int,int)" que Java n'aime pas ici.
Les coordonnées que j'utilise sont celles de cellules existantes, j'ai d'ailleurs essayé avec un tableau plus grand sans conséquences.
 
Je n'utilise pas de vecteurs, seulement une chaine de caractère (l'objet) que je place dans chaque cellule du tableau :heink:

Reply

Marsh Posté le 08-01-2007 à 16:15:17    

Dans l'API 1.4.2 partie DefaultTableModel je trouve ce message :

This is an implementation of TableModel that uses a Vector of Vectors to store the cell value objects.
 
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.


Ceci pourrai expliquer mon problème de compatibilité avec les versions supérieures.
De quelle manière je pourrai simplement rendre mon code compatible avec toutes les versions de Java?
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed