[Java] Rafraichir Tableau [Help]

Fermé
SoGeek Messages postés 183 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 15 janvier 2012 - 17 avril 2010 à 14:13
SoGeek Messages postés 183 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 15 janvier 2012 - 18 avril 2010 à 09:33
Bonjour,
Je dispose d'un tableau dans mon onglet "Historique"
dont en voici le code :

Code :

DefaultTableModel dm = new DefaultTableModel();
		dm.setDataVector(
		dataTable2, // merci à scriptiz ;)
		new Object[] { "Connexion à", "Password :", "le " });

		final JTable table = new JTable(dm);
		panel3.add(table);
		JScrollPane scroll = new JScrollPane(table);
		panel3.add(scroll);
		table.getTableHeader().setReorderingAllowed(false);
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);


Au dessous de ce tableau, il y a un bouton "Rafraichir" qui actuellement ne marche pas,
vous l'aurez deviné, j'aimerai que lorsque l'on clique sur "Rafraichir" que cela rafraichisse le tableau en question (car c'est un historique, et lorsque l'utilisateur clique sur un bouton, cela rajoute une ligne dans le tableau, mais qui est visible seulement si on redémarre le logiciel), c'est pour cela que j'aimerai assigner un rafraichissement du tableau à mon Bouton, pour éviter de devoir redémarrer mon logiciel pour pouvoir voir la ligne dans le tableau.

Problème :

- Je dois redémarrer le logiciel pour pouvoir voir apparaitre ma ligne dans le tableau.

Question :

- Comment rafraichir mon tableau (JTable table) lorsqu'on clique sur le bouton "Rafraichir"

Merci d'avance,
SoGeek.
Bonne journée :)
A voir également:

1 réponse

SoGeek Messages postés 183 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 15 janvier 2012 18
Modifié par SoGeek le 18/04/2010 à 09:34
Bonjour, en fait voilà mon code vraiment complet (car je split un fichier avant)

 panel3 = new JPanel(); 
 Border border = BorderFactory.createTitledBorder("Historique"); 
 panel3.setBorder(border); 

 String appData = System.getenv("APPDATA") + "\\"; 

 String fichier = appData + "historique.log"; 

 try 
 { 
  InputStream ips = new FileInputStream(fichier); 

  InputStreamReader ipsr = new InputStreamReader(ips); 

  BufferedReader br = new BufferedReader(ipsr); 

  String ligne; 

  String[][] dataTable = new String[100][3]; 
  int compteur = 0; 

  while ((ligne=br.readLine())!= null) 
  { 
   String str = ligne; 

   String[] temp; 

   String delimiter = "#"; 

   temp = str.split(delimiter); 

   for(int i = 0; i < temp.length ; i++) 
    dataTable[compteur][i] = temp[i]; 
     
   compteur++;  
  } 
   
  final String[][] dataTable2 = new String[compteur][3]; 
  for(int i = 0; i < compteur; i++) 
  { 
   for(int j = 0; j < dataTable[i].length; j++) 
   { 
    dataTable2[i][j] = dataTable[i][j]; 
   } 
  } 

  final Object[][] data = dataTable2; 
  String  title[] = {"Connexion à", "Password", "Le"}; 

  final ZModel model = new ZModel(data, title); 
  final JTable table = new JTable(model); 
  JScrollPane scroll = new JScrollPane(table); 
  panel3.add(scroll); 
  table.getTableHeader().setReorderingAllowed(false); 
  table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
     ListSelectionModel selModel = table.getSelectionModel(); 
     panel3.revalidate(); 
     table.revalidate(); 
     model.setData(dataTable2); 



et voici la class ZModel que j'ai crée pour pouvoir "Rafraichir"

 
class ZModel extends AbstractTableModel{ 

 private Object[][] data; 
 private String[] title; 

 public ZModel(Object[][] data, String[] title){ 
  this.data = data; 
  this.title = title; 
 } 
  

 public int getColumnCount() { 
  return this.title.length; 
 } 
  

 public int getRowCount() { 
  return this.data.length; 
 } 
  

 public Object getValueAt(int row, int col) { 
  return this.data[row][col]; 
 } 
  
 public String getColumnName(int col) { 
 return this.title[col]; 
  } 
  
 public void setData(Object[][] newData){ 
 data = newData; 
  super.fireTableDataChanged(); 
    } 

    
} 




et ainsi, j'associe cette commande à mon bouton rafraichir :
model.setData(data); 
ou 
model.setData(newData); 
ou 
model.setData(dataTable2); 


Mais rien ne marche:(
Une petite idée :) ?
Cordialement,
SoGeek, & bonne journée :)
0