A voir également:
- Transformer un ArrayList en tableau a 2 dimmension
- Dimmension a5 - Guide
3 réponses
salut !
il faudra un peu plus de détails, comme par exemple qu'y a t'il dans ta liste ? que veux tu comme résultats ? car sans ca la question n'a pas vraiment de sens.
naga
il faudra un peu plus de détails, comme par exemple qu'y a t'il dans ta liste ? que veux tu comme résultats ? car sans ca la question n'a pas vraiment de sens.
naga
Merci de ta réponse
ma list contient des objets que je voudrais placer dans un tableau a 2 dimensions. ceci dans le but de pouvoir les afficher dans une JTable.
(j'ai un doute entre le size et le count, ca fait pas mal de temps que j'ai pas touché au java =p)
Je sais pas si c'est exactement ce que tu veux mais le principe devrait être le m^me
Voici le code auquel j'avais pensé mais celui ci lève une NullPointerException.
private static Object data[][];
private static ArrayList<LigneDeCommande> listeDeToutesLesLignes = new ArrayList<>();
public static void convertArrayToTab() {
int i = 0;
System.out.println(listeDeToutesLesLignes.size());
while(i < listeDeToutesLesLignes.size()){
data[i][0] = listeDeToutesLesLignes.get(i).getDesignation();
data[i][1] = listeDeToutesLesLignes.get(i).getReference();
data[i][2] = listeDeToutesLesLignes.get(i).getQuantité();
data[i][3] = listeDeToutesLesLignes.get(i).getPrixUnitaire();
data[i][4] = listeDeToutesLesLignes.get(i).getTotalLigne();
data[i][5] = listeDeToutesLesLignes.get(i).isCommande();
data[i][6] = listeDeToutesLesLignes.get(i).isRecu();
i = i++;
}
}
ensuite tu fais i = i++
fais plutot i++ tout simplement pour l'icrémenter.
essaye donc :
Et un coup de fouet pour nagashima ^^
"static" n'empêche pas du tout l'édition, peut-être confonds-tu avec "final", même si l'édition reste malgré tout possible (c'est la réutilisation d'une référence pour plusieurs objets qui est interdit)
"static" permet de différencier les méthodes qui s'appliquent à la classe et sont donc partagées par tous les objets, des méthodes non "static" qui elles s'utilisent sur un objet en utilisant ses données.
Par contre il faut être cohérent, soit tout est static et il n'y a aucun objet (et donc pas de données, sauf des données partagées), soit rien n'est static parce que ça s'applique à un seul et même objet (et donc aux même données). Si on mélange les deux il faut préciser dans les méthodes static de quel objet (quelles données) on parle...
Ici, le NullPointerException vient tout simplement du fait que data n'a pas de valeur (il vaut donc null par défaut), il faut appeler un constructeur, permettant entre autre de lui donner une taille.
Donc "data = new string[listeDeToutesLesLignes.size()][7];" pourrait faire l'affaire, sauf qu'ici il ne s'agit pas de "string" mais d'Object puisqu'il y a un peu de tout dans les lignes.
Par contre, l'utilisation de ton tableau data déclaré en membre (static qui plus est) me parait maladroit, il vaudrait mieux je pense faire une méthode static qui manipule une liste en entrée, et renvoie ton tableau en retour, quitte à avoir un membre qui s'appelle effectivement data dans tes objets et que tu utilises pour récupérer le résultat. Mais si tu utilises toujours le même tableau static, à chaque fois que tu feras appel à la méthode tu vas reprendre le même tableau et modifier sa valeur, ce qui va poser problème.
Voici comment moi je ferais :