Mise a jour de JTable entre classe - Java - Programmation
Marsh Posté le 05-02-2008 à 00:54:28
JTable repose sur une classe qui implémente TableModel pour stocker les données qu'il affiche (cf. constructeur de JTable ; tu peux utiliser DefaultTableModel si tu veux : elle répond souvent au besoin). Et si tu as correctement créé ton tableau avec son objet modèle-de-données, il est mis au courant à chaque fois que les données du modèle change (plus techniquement, il est un des TableChangeListener de son propre modèle de données).
Si c'est bien le contenu de ton tableau qui doit changer (au niveau de l'affichage), alors vérifie que tu as bien suivi le modèle de conception ci-dessus. Tu verras que les modifications de données seront transmises au tableau toutes seules, dès que tu modifies les données de ton modèle de tableau.
Si c'est l'apparence du tableau qui doit changer (du genre l'ordre des colonnes ou les lignes sélectionnées), alors c'est du changement d'affichage et pas de contenu (c'est-à-dire de données). Là, tu peux agir directement sur ton objet JTable en appelant une méthode dédiée.
Marsh Posté le 04-02-2008 à 14:53:09
Bonjour a tous,
Voila j'ai une classe ou j'utilise et affiche une JTable. j'arrive a la mettre a jour correctement avec une méthode dans cette même classe que nous allons appeler X.
la classe X fait apelle a une classe Y qui doit après un traitement mettre a jour la Jtable. Voila mais comment faire ? Au départ je mettais a jour la Jtable dans X juste après l'appel de Y mais forcément quand il execute la méthode de mise a jour le traitement n'est pas encore terminé dans Y. J'ai aussi essayé de passé en paramètre X dans la classe Y mais le seul résultat est un "java.lang.NullPointerException"
voici un petit résumé des choses histoires de mieux visualiser la chose
public class X {
//méthode majJtable();
class ActionBouttonAjouter implements ActionListener {
private X x;
public ActionBouttonAjouter(X x){
x = x;
}
public void actionPerformed( ActionEvent e) {
Y y = new Y(x);
}
public class Y {
//traitement
je recupere x puis
x.majJtable();
}
Voila j'espère que c'est clair héhé, donc ma question est simple comment faire la mise a jour de cette JTable ? Une autre solution consisterai a mettre un bouton dans la classe X a activer pour mettre la JTable manuellement mais ça ne serai pas vraiment très propre.
Merci d'avance, Eva.