tibo3374
Messages postés6Date d'inscriptionjeudi 10 mai 2007StatutMembreDernière intervention26 août 2011
-
20 mai 2009 à 23:39
tibo3374
Messages postés6Date d'inscriptionjeudi 10 mai 2007StatutMembreDernière intervention26 août 2011
-
22 mai 2009 à 00:45
Bonjour,
Je suis en train de développé une application java qui gère une base de données MYSQL.
Sur la JFrame principal j'ai 2 JTable.
Ces deux JTable sont rempli par des requetes SQL via un TableModel (extends AbstracTableModel).
Le raffraichissement fonctionne très bien cependant lorsque que je raffraichit une des JTable (avec
fireTableStructureChanged
() ) l'autre se raffraichit avec les meme données.
Je ne trouve pas de solution a ce probleme, en effet les données stocké par une des JTables sont détruites lorsque que l'autre se raffraichit, je cree pourtant deux modeles distinct. J'ai meme essayé de creer une autre classe qui extends AbstractTableModel mais les données sont une nouvelle fois ecrasé a chaque raffraichissement.
Si quelqu'un avait une idée sa serait sympa parce que je galère depuis un moment maintenant.
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 21 mai 2009 à 08:44
Sans un court exemple indépendant et compilable c'est difficile. Avec un exemple qui tourne on peut trouver le truc au moins dix fois plus vite qu'avec les yeux nus fixés sur un fragment de code. C'est même possible qu'en construisant l'exemple tu trouve toi-même la solution!
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 21 mai 2009 à 01:25
En général, deux tables différentes ne peuvent pas influencer l'une l'autre.
Il faudrait reconstruire le problème sur un court exemple indépendant et compilable.
public void setDataT(String query)
{
jTabledefault =true;
connexion = new SQLExecuteQuery();
connexion.setQuery(query);
fireTableStructureChanged();
}
public void setDataN()
{
jTabledefault=false;
fireTableStructureChanged();
}
private boolean jTabledefault;
public static SQLExecuteQuery connexion;
Dans ma JFrame principale j'initialise les models comme ce ci
TableModel TMvisu = new TableModelFromMysql();
TableModel TMheader = new TableModelFromMysql();
j'initialise egalement les JTable :
JTable jTableVisu = new JTable();
jTableVisu.setModel(TMvisu);
JTable jTableHeader = new JTable();
jTableHeader.setModel(TMheader);
Ensuite pour gerer les changements de valeur des JTable (separement), j'utilise la méthode setDataN pour vider et setDataT pour remplir avec une nouvelle requete.
Un appel par exemple :
requeteVarTab = "Select `"+varx+"`,`"+vary+"` from mesure";
((TableModelFromMysql)jTableVisu.getModel()).setDataT(requeteVarTab);
Quand je fais cet appel, les deux JTable sont modifié alors que les JTables sont placé dans deux models différents, c'est cela que je ne comprend. Je pense que je m'y prend mal. Si vous avez une suggestion merci de m'aiguiller ;) .
tibo3374
Messages postés6Date d'inscriptionjeudi 10 mai 2007StatutMembreDernière intervention26 août 2011 22 mai 2009 à 00:45
Bonjour,
Comme vous me l'avez conseillé j'ai fait un court exemple :
une JFrame avec 2 Jtables de test avec des Objets de donnees statiques.
Le raffraichissement marché très bien, l'une se raffraichissait et l'autre non.
J'ai donc modifié mon TableModel et ma classe qui traité les requetes SQL, plusieurs élement etaient statiques.
Le problème est donc résolu, merci bien pour ce conseil.