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 :

[JTable avancé]Update d'une seule case à moindre coût


Sujet :

Composants Java

  1. #1
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut [JTable avancé]Update d'une seule case à moindre coût
    En gros la question est : Comment updater le renderer d'une seule cellule quand on en modifie une autre ?

    Bonjour,
    J'ai un bulletin de classe d'un groupe d'élèves. J'ai une colonne par controle, et une colonne Moyenne.

    Comme je fais des conversions de système américain à système français et que les notes sont pas proportionnelle, il peut y avoir des sinus hyperboliques sur plusieurs note pour calculer la moyenne, ce qui pourrait ralentir la machine.

    Donc supposons qu'un prof change une note d'un élève, comment suggérer à ma JTable de n'updater que le renderer de la moyenne de l'élève concerné, sans
    calculer les moyennes de tous les autres élèves ? Et éviter ainsi de faire des getValueAt() de partout.

    Merci de votre réponse,
    Nicolas

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,

    lorsqu'on modifie la valeur d'une cellule, seul le renderer de cette cellule est appelé pour l'update (cf TableModelListener), du moins si l'on utilise un DefaultTableModel.
    En fait, tout cela est géré par le TableModel : à chaque modification du contenu de la JTable, un TableModelEvent est généré, et la JTable appelle le TableCellRenderer sur les cellules en question.
    Avec une implémentation maison de TableModel, on peut très bien provoquer l'update de la JTable entière n'importe quand, il suffit de mal choisir le TableModelEvent à lancer.

    Dans ce cas, je verrais bien un DefaultTableModel avec un TableModelListener qui écoute les changements de note et qui met à jour la moyenne en fonction.

  3. #3
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    J'essaye dès que je peux (j'ai quelques urgences qui me sont tombées sur le coin de la JVM) et j'en reparle.
    Thanks

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

Discussions similaires

  1. Dans formulaire une seule case cochée sans name
    Par Invité(e) dans le forum ASP
    Réponses: 1
    Dernier message: 16/04/2008, 22h51
  2. Dans formulaire une seule case cochée sans name
    Par Invité(e) dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/04/2008, 20h45
  3. update d'une seule colonne table entière
    Par dlamo dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/10/2007, 10h13
  4. Table SWT.CHECK ne cocher qu'une seule case
    Par snoop dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 28/06/2007, 16h33
  5. Plusieur Update en une seule requete?
    Par sirbaldur dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/06/2006, 13h13

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