IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

rafraichissement cellule JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Par défaut rafraichissement cellule JTable
    Bonjour,

    je suis entrain de faire une application donc chaque frame utilise une JTable.
    Dans chaque JTable, il peut y avoir une centaine de celulle(une cellule = une journée). Chaque cellule contient une autre table composé d'une seule ligne mais peut atteindre jusqu' à 1440 celulle(une cellule = 1 minute).

    Mon problème est le suivant, le rafraichissement de la table principale est trop lent si mon nombre de cellule est très important. Par exemple si je scrolle la table pour voir d'autres données(cellule). un rafraichissement se fait. Si je scrolle du début à la fin, mon scroll est sacadé. Le scroll n'est qu'un exemple, il y a aussi le drag au dessus de ma table qui est lent car il y a un rafraichissemnt continu jusqu'à ce que je ne soit plus sous ma table.

    Je pensais à des threads pour que les différentes actions puissent se faire en même temps.

    Quelqu'un a déjà eu le même problème ?
    Une début de piste serait déjà pas mal !
    Je suis assez perdu là.

    Merci

  2. #2
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Que font tes méthodes getValueAt()? Un simple accés aux données ou un calcul?

  3. #3
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Citation Envoyé par jdewalqu
    Dans chaque JTable, il peut y avoir une centaine de celulle(une cellule = une journée). Chaque cellule contient une autre table composé d'une seule ligne mais peut atteindre jusqu' à 1440 celulle(une cellule = 1 minute).
    144 000 cellules de tableau (à gérer en mémoire) ...
    tu m'étonnes que ça rame un peu!

  4. #4
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Citation Envoyé par g_rare
    144 000 cellules de tableau (à gérer en mémoire) ...
    tu m'étonnes que ça rame un peu!
    Moi j'ai une table de 16.000 éléments, et ça va super vite.
    Ok, lui c'est 10 fois plus, mais bon faut voir...

  5. #5
    Membre averti
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Par défaut
    Re,

    dans notre application, on a la possibilité de faire un zoom, c'est à dire qu'on regroupe plusieurs colonnes en une seule. En zoom fois 10, ca va naturellement plus vite. C'est pas encore le top mais c'est utilisable.

    Pour résoudre en partie le problème de lenteur on a plus une JTable dans une autre JTable mais on dessine des blocs qui correspondent à des cellules dans chaque cellule de la JTable principale. Ca va déjà plus vite mais ca reste encore insuffisant. Le traitement reste trop important quand on doit dessiner trop de bloc.

    On continue à optimiser pour que le traitement soit minimum

  6. #6
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    J'ai testé une JTable classique avec 100.000 éléments et j'ai pas de problèmes de lenteur.
    Cela vient peut-être du fait que tu imbriques une table dans une table ou de ton dessin de cellules dans une cellule, ou alors c'est ce que tu fais dans ta méthode getValueAt() qui prend du temps.

    Si tu as des calculs à l'intérieur de cette méthode, ça va ralentir ton appli. Tu ne dois faire qu'accéder aux valeurs stockées et ne RIEN calculer...

  7. #7
    Membre averti
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Par défaut
    je n'ai rien dans la méthode getValueAt vu que je n'ai pas de valeur.
    Ce qui prend du temps, c'est la méthode paint(qui dessine mes blocs) et getTableCellRendererComponent de ma classe qui implémente TableCellRenderer qui est appelé lorsque je fais un drag au dessus de la table.
    Le mouseDrag fait automatiquement le refresh de la table.
    Idem si je bouge je scroll ma barre de défilement.
    Je suis obligé de faire un minimum de traitement dans la méthode paint
    parce que l'utilisateur peut changer le zoom(le nombre de blocs par cellule, la taille, la couleur d'un bloc peut changer à n'import quel moment,...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fusionner cellule JTable
    Par timtima dans le forum Composants
    Réponses: 0
    Dernier message: 21/11/2008, 18h44
  2. Changer la couleur de fond cellule JTable
    Par donnadieujulien dans le forum Composants
    Réponses: 13
    Dernier message: 22/09/2008, 18h38
  3. cellule Jtable avec Jcombobox
    Par mina86 dans le forum Composants
    Réponses: 2
    Dernier message: 11/08/2008, 16h18
  4. dimension cellule JTable
    Par gdhugue1 dans le forum Composants
    Réponses: 2
    Dernier message: 11/06/2007, 11h31
  5. Pb Cellule Jtable
    Par Karim93210 dans le forum Composants
    Réponses: 9
    Dernier message: 07/06/2007, 22h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo