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] rafraichissement


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Par défaut [JTable] rafraichissement
    Bonjour,

    Je suis en train de faire un tétris en Java, et j'utilise pour celà une JTable. Ma pièce s'affiche bien en haut, et descend ... mais ma JTable ne se rafraichit pas, donc on la voit pas descendre .... sauf si on click sur une case, et là ça se rafraichit dès qu'on click, mon code :

    MyTableModel.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     ...
           public void setValueAt(String value, int row, int col) {
                data[row][col] = value;
                fireTableDataChanged();
            }
    Affichage.java

    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
    		MyTableModel model = new MyTableModel(data,columnNames);
    		JTable t = new JTable(model);
    		t.setShowGrid(false);
    		Dimension d;
    		d=new Dimension();
    		d.height=350;
    		d.width=180;
    		t.setPreferredSize(d) ;
    		t.setCellSelectionEnabled(false);
    		int i,j;
    		resetGrille();
     
    		for (i=0;i<20;i++){
    			for (j=0;j<10;j++){	
    				t.setValueAt(tableau[i][j],i,j);
     
    			}
    		}
    		return t;
    Si quelqu'un a une idée, merci d'avance !

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 47
    Par défaut
    essaye avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    maTable.revalidate();
    maTable.repaint();
    mais à ta place, je ne mettrai pas ces instructions dans le setValueAt(...).

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 47
    Par défaut
    petite optimisation de lecture au passage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dimension d;
    d=new Dimension();
    d.height=350;
    d.width=180;
    t.setPreferredSize(d) ;
    peut s'écrire en une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    t.setPreferredSize(new Dimension(350,180));

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Par défaut
    J'ai enlever le modèle puisqu'en fait il ne me servait à rien. Le revalidate et le repaint n'ont aucun effet.

    J'ai essayé une parade en recréant ma grille par dessus l'autre. Seul problème, le listener sur les fleches ne marche plus, puisque je ne peux plus les utiliser. Sauf si je click sur la grille et que j'appuie sur une flèche en même temps (je lui redonne le focus manuellement en quelques sorte). Est-il possible de remettre un "focus" sur la JTable à chaque fois ?

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Franchement, la JTable n'est de loin pas la méthode optimale pour faire un Tétris. C'est un composant fait pour afficher des données.

    Pour faire un tétris crées toi ton propre composant, en redéfinissant la méthode la méthode paintComponent et en te créant un modèle de base et l'affaire sera close...

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Par défaut
    Oui mais je suis tellement mauvais en java que tu me parles chinois là xD

    Personne n'a une idée en gardant une JTable pour mon problème de listener ?

Discussions similaires

  1. JTable : rafraichissement en live des colonnes et lignes
    Par sunwallis dans le forum Composants
    Réponses: 8
    Dernier message: 17/05/2010, 22h59
  2. [JTable] rafraichissement des données
    Par gari35 dans le forum Composants
    Réponses: 4
    Dernier message: 23/12/2009, 18h00
  3. [JTable] Rafraichissement des CellEditor
    Par Jurgui dans le forum Composants
    Réponses: 1
    Dernier message: 17/04/2008, 13h59
  4. [JTable] Rafraichissement fréquent
    Par TylerKnoxx dans le forum Composants
    Réponses: 1
    Dernier message: 14/03/2008, 11h25
  5. [débutant] rafraichissement JTable + action bouton
    Par sqwam71 dans le forum Composants
    Réponses: 4
    Dernier message: 28/12/2005, 15h29

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