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

Fermé
ouchemhou Messages postés 6 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 19 août 2008 - 13 août 2008 à 14:02
 ouchemhou - 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
A voir également:

3 réponses

ouchemhou Messages postés 6 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 19 août 2008
13 août 2008 à 15:39
c'est compliqué mais une idée
0
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();
}
0
ça pourrait etre un prblm
0
Bonsoir javacha4

merci pour votre réponse

en fait moi j'ai résolu le problème et j'ai même oublié cela
0