Affichage d'un tableau de très grande dimension

Tielperon Messages postés 3 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 6 juillet 2007 - 6 juil. 2007 à 11:39
Tielperon Messages postés 3 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 6 juillet 2007 - 6 juil. 2007 à 16:00
Bonjour à tous,

Voici mon problème,

Afin de représenter des données scientifiques, je dois pouvoir dans une application afficher un tableau de résultat pouvant atteindre jusqu'à 1500 col x 10 000 lignes.

J'ai réalisé différents tests avec les contrôles fournits par SWT et Swing, mais j'atteinds très vite les limitations de ces contrôles.

Pour SWT, cela devient très vite un enfer au dela de 100 colonnes (par contre pas de problèmes pour le nombre de lignes, dans le limite du résonnable).

Avec JTable de Swing, les résultats sont déjà plus encourageant :
J'arrive à afficher un tel tableau et la navigation est fluide... mais uniquement si le tableau est vide
Dès que je rempli mon objet JTable au dela de 10%, je me retrouve avec un "out of memory"

Bon d'accord, j'en demande peut être beaucoup, mais cela doit tout de même être possible...

Si vous avez déjà rencontré ce problème, et si vous connaissez une solution, même payante   je suis preneur.

En vous remerçiant par avance.

Bon code...

Sur la toile, plein de belles promesses avec des contrôles tout beau, interactif et tout et tout, mais aucune infos sur les limitations... HAaaa, Marketing, quand tu nous tiens...

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
6 juil. 2007 à 14:55
Oula, n'importe quel langage a ces limites, et vu la masse de données, c'est bien normal que java ne puisse pas suivre !

Utilise un algorithme paresseux : n'affiche que ce que l'utilisateur a besoin de voir (j'avais vu un post dans un forum anglophone comment faire pour qu'une JTable n'est pas besoin de toute les données à afficher afin de simuler une JTabel affichant toutes les données d'une table : exemple, comment faire croire à l'utilisateur qu'une JTable contient 1 milions d'enregistrement alors qu'au final, elle n'affichait que 100 enregistrements à la fois.

Malheureusement, je n'ai plus le lien !
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
6 juil. 2007 à 15:26
oui ;o) c est l évidence .... et aussi pourquoi personne n a jamais besoin d afficher autant de colonne ;o) car de toute facon on ne peut en afficher autant ...
il te suffi de gerer un buffer vertical et horzontal dans ton model de données .... rien de bien compliqué ...
tous ce passe au niveau du model ... il y a surement quelque exemple sur le site ....

par contre si tu dois gerer de gros volume de donné je te conseille fortement ;o) d utiliser un SGBDR et de passer par des requetes pour remplir ton buffer :o)
bonne chance ...

GodConan ;o)
0
Tielperon Messages postés 3 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 6 juillet 2007
6 juil. 2007 à 15:47
Merci  Darksidious.

C'était effectivement une possibilité que j'envisageais de plus en plus, mais avant de me lancer dans le développement d'une telle gestion de tableau, j'espérais soulever des choses sur le sujet, car peu d'infos circule sur la gestion de grands tableaux, pourtant chose assez courante dans le domaine scientifique.
Bon d'accord, mon cas est peut être un peu extrême

En te remerciant encore pour cette réponse rapide

Cdt,

Tielperon.

Pour info : avec Swing JTable : possible de gérer jusqu'à ~850 000 cellules (remplies par des "String") , ce qui en soit est déjà pas mal je l'accorde...

<hr size="2" width="100%" />Je poste des infos dès que j'en sais un peu plus sur le sujet...
0
Tielperon Messages postés 3 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 6 juillet 2007
6 juil. 2007 à 16:00
GodConan,

Effectivement... pourquoi s'embêter avec des tableaux si gros...
Parce qu'il y a des programes qui adore générer des lignes et des lignes de résultats et que les personnes qui utilisent ces programes aiment bien les visualiser...

Mon boulot à moi est de trouver des solutions pour leur eviter de découper ces données en petit tableaux pour les affichers dans des tableurs commerciaux limités en nombre de colonnes (deviner de qui je parle) puis pour ensuite les reconcaténer pour les réutiliser dans d'autres programmes qui eux même ... enfin bon vous avez compris.

Merci pour l'idée du buffer, c effectivement très intéressant, mais pour mon niveau pas si anodin que ça (ce sujet n'a pas été posté par hazard sur Divers/Débutant )...

Pour la base, cela est également prévu, mais il faut que j'intégre également un chargement de la table via des fichiers de type *.dat

Encore merci

Tielperon
0
Rejoignez-nous