Les Allergies
Alimentaires
Posez votre question Signaler

Mise à jour d'une JTable (Problème d'affichag

ouchemhou 4Messages postés 13 août 2008Date d'inscription - Dernière réponse le 1 oct. 2010 à 01:02
Bonjour tout le monde

Alors voilà mon problème :

Je possède une JTable pour afficher des données d'une base de données 

ces données depend d'une date entrée par l'utilisateur 

ça marche bien lors de la prmière utilisation ,et s'il change la date ma JTable

n'est pas mis à jour et je sais pas comment la metrre à jour,

j'ai utilisé repaint et revalidate ,mais ça change rien,

sachant que si j'ai fait un getValeurAt(1,1) je trouve la valeur que je veut 

un peu de code ::

remplissage de la table :

public class TableRapport {
	
   Connection conn;
   String date;
	  
  double PJ=0,PC=0;
  double LJ=0,LC=0;  
  ArrayList t1=new ArrayList();
  ArrayList t2=new ArrayList();
  ArrayList t3=new ArrayList();
  ArrayList t4=new ArrayList();
  ArrayList t5=new ArrayList();
 
	  
	  DefaultTableModel model;
	  JScrollPane scroll=new JScrollPane();
	  table tableau =null;
   
	  DefaultTableCellRenderer forme;
	  
	  FormeColonne produitForme,PForme,PCForme,LForme,LCForme;

	  	  
	public TableRapport(Connection conn,String date,String req){
 
        this.conn=conn;
		this.date=date;   
		
	        Requete resultat = new Requete(conn,req,1); 
	        	      	     	   
         try {     
        	 
	    	  /*  t1.clear();
	    	    t2.clear();
	    	    t3.clear();
	    	    t4.clear();
	    	    t5.clear();*/
        	 
	    		System.out.println(t2);
 
	         while(resultat.resultat.next())
	 		
	         {				  	
	        	 String RefProduit=resultat.resultat.getString(1);
			     t1.add(RefProduit);			     
			     ChercheTable(RefProduit);
	             t2.add(PJ);
	             t3.add(PC);
	             t4.add(LJ);
	             t5.add(LC);  
	               
	 			PJ=0;
	 			LJ=0;  
	     		PC=0;
	 			LC=0;  
	         }
	          
	         
	        }catch(SQLException e) { 
		    	  e.printStackTrace(); 
	    	 }		                  
                model=new DefaultTableModel(){
              	  
        	      public boolean isCellEditable(int row, int col){ 
        		  if (col==0) {return false;} 
        		   else {return true; }
        		  
        	     }
            };  
           
          System.out.println(t2);
          model.addColumn("        Réference du produit  ",t1.toArray());
          model.addColumn(" Production du jour ",t2.toArray());        
          model.addColumn(" Production Cumulée ",t3.toArray());
          model.addColumn(" Livraison du jour ",t4.toArray());
          model.addColumn(" Livraison Cumulée ",t5.toArray());                  
          
	        tableau = new table(model);  
	        
produitForme=new FormeColonne(tableau.tablee,"        Réference du produit  ",Color.DARK_GRAY,Color.yellow,JLabel.LEFT); 
 PForme=new FormeColonne(tableau.tablee," Production du jour ",Color.white,Color.black,JLabel.CENTER); PCForme=new  FormeColonne(tableau.tablee," Production Cumulée ",new Color(0,74,14),Color.white,JLabel.CENTER);
  LForme=new  FormeColonne(tableau.tablee," Livraison du jour ",Color.white,Color.black,JLabel.CENTER); 
 LCForme=new  FormeColonne(tableau.tablee," Livraison Cumulée ",new Color(0,74,14),Color.white,JLabel.CENTER); 
		   
scroll.setViewportView(tableau.tablee);
			
	}
	
  public void ChercheTable(String RefProduit){	 
 
 String req="SELECT Production_J,PC,Livraison_J,LC FROM omag_valeur WHERE Date ='"+date+
"' AND RefProduit ='"+RefProduit+"'"; 
      Requete resultat = new Requete(conn,req,1); 
           
      try{  
             	  
    	  while(resultat.resultat.next()){  
    		   
    		PJ=resultat.resultat.getDouble(1);  
    		PC=resultat.resultat.getDouble(2);  
    		LJ=resultat.resultat.getDouble(3);  
    		LC=resultat.resultat.getDouble(4);    		   
    	  }   	  
      }catch(SQLException e){
       	 e.printStackTrace();
    	 }
	  
   }
	
} 
 

propriétes de la table :

public class table{
 	
	    
	JTable tablee=new JTable();
	
	
  public table(DefaultTableModel model) {
		 
	  
	        tablee.setModel(model); 
	        tablee.setCellSelectionEnabled(true);
	        tablee.setAutoCreateRowSorter(true);
	        tablee.setAutoResizeMode(0);
	        tablee.setColumnSelectionInterval(1, 1);
	        tablee.setRowSelectionInterval(0, 0);
	      
	        tablee.setRowHeight(20);
	        
	        // definir un curseur sur la table
	        
	        Image img=Toolkit.getDefaultToolkit().getImage("images\\curseurs\\plus.gif");
	        Point p=new Point(15,15);
	        Cursor curs=Toolkit.getDefaultToolkit().createCustomCursor(img,p, "x");
	        tablee.setCursor(curs);
     	       	        
     }		
 }


appel :

 TableRapport Trapport;	  
        JPanel rapport=new JPanel();
         rapport.setLayout(null); 	  
        Trapport = new TableRapport(conn,d.datereponse,ReqJournalier);
        // avec conn=connection et d.datereponse=la date entrée et ReqJournalier=requete
	    Trapport.scroll.setBounds(20,10,790,350);
        rapport.add(Trapport.scroll);
        Trapport.tableau.tablee.revalidate();

mais n'est pas affiché !!

merci d'avance
Lire la suite 

Mise à jour d'une JTable (Problème d'affichag »

4 réponses
Réponse
+0
moins plus
c'est compliqué mais une idée
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour et bonne chance


que veux tu dire par

try{

while(resultat.resultat.next()){

PJ=resultat.resultat.getDouble(1);
PC=resultat.resultat.getDouble(2);
LJ=resultat.resultat.getDouble(3);
LC=resultat.resultat.getDouble(4);
}
}catch(SQLException e){
e.printStackTrace();
}
javacha4 - 30 sept. 2010 à 10:20
ça pourrait etre un prblm
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir javacha4

merci pour votre réponse

en fait moi j'ai résolu le problème et j'ai même oublié cela
Ajouter un commentaire
Ce document intitulé « Mise à jour d'une JTable (Problème d'affichag » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?