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]Modifier les valeurs en temps réel


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Par défaut [JTable]Modifier les valeurs en temps réel
    Bonjour,
    j'ai une interface avec une JTable qui affiche les valeurs de variables modifiées par des processus.J'aimerai que les cellules de la JTable soient modifiées à chaque fois que le processus change une valeur. voila comment je m'y prends pour faire ceci

    Une des actions dans la classe du processus qui modifie un compteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	private void inc_compteur() {
     
    		o.attente(id);
    		System.out.println("T" + o.temps++ + " => Processus " + id + " incrémente son compteur.");
    		compteur++;	
    		e.modifCompteurPrive(id,compteur); //e est un evenement				
    		o.bloquer();
    }
    la classe Evenement qui récupère le signal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    	public class Evenements {
     
    	StatistiquesPanel panel;
     
    	public Evenements(StatistiquesPanel statPan){
    		this.panel = statPan;
    	}
     
    	//les actions atomiques qui doivent entrainer une modification
    	public void modifCompteurPrive(int tache, int compt){
    		panel.model.setValueAt(Integer.toString(compt),tache,2);
    	}
     
    	public void demandeMutex(int tache){
    		panel.model.setValueAt("Demande MUTEX",tache,1);
    	}
     
    	public void modifCompteurPartage(int tache, int compt){
    		panel.model.setValueAt(Integer.toString(compt),tache,3);
    	}
     
    	public void rendreMutex(int tache){
    		panel.model.setValueAt("Rend MUTEX",tache,1);
    	}
     
    }
    la méthode setValueAt de la classe TableModelStat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     public void setValueAt(Object value, int rowIndex, int columnIndex){
        	   String[] item;
               if (rowIndex >= items.size()) {
                   item = new String[getColumnCount()];
                   items.add(item);
               } else {
                   item = (String[]) items.get(rowIndex);
               }
     
               item[columnIndex] = value.toString();
               fireTableCellUpdated(rowIndex >= items.size() ? items.size() - 1 : rowIndex, columnIndex);
     
        }
    Le problème est que la JTable n'est modifiée qu'à la fin de l'execution (affiche la valeur final du compteur) alors qu'elle devrait afficher les valeurs successives du compteur.A noter que ce n'est pas du au fait que les processus s'executent trop vite car je peux régler les temporisations.Les sorties consoles (System.out.println) fonctionnent très bien, ils affichent bien les valeurs successives.
    Avez vous une idée?
    merci d'avance

  2. #2
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    As tu essayer la méthode resizeAndRepaint ?

  3. #3
    Membre confirmé Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Par défaut
    As tu essayer la méthode resizeAndRepaint ?
    Si je fais une repaint() sur le panel dans lequel est la JTable ça ne change rien

  4. #4
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    c'est une méthode de JTable

  5. #5
    Membre confirmé Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Par défaut
    c'est une méthode de JTable
    Je ne la trouve pas.Y a bien JTable.resize mais pas de JTable.resizeAndRepaint

  6. #6
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727

Discussions similaires

  1. Lire un fichier Excel pour modifier les valeurs des cellules
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/10/2006, 15h13
  2. Réponses: 1
    Dernier message: 31/10/2006, 11h15
  3. [JTable] modifier les données à postériori
    Par SheikYerbouti dans le forum Composants
    Réponses: 4
    Dernier message: 09/02/2006, 12h19

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