bjr,
je souhaite remplir une jtable avec partir un fichier texte et à partir d'une fenetre JFileChooser. Ma JTable contiendra une liste de logiciels. Elle implemente "observer" (update(observer,object))

J'utilise un modele qui lira le fichier texte et ecrira sur le fichier les fichier ouvert par le JFileChooser.(fichier de sauvegarde de noms de logiciels)

j'utilise un "modeletable" qui herite de AbstractTableModel pour la mise en forme de ma jtable

dans ma modeletable j'ai implenté la methode getValueAt() que j'utilise dans la fonction update de la class VueTable

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
 
package installationLogiciels;
 
import java.util.Iterator;
import java.util.*;
 
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
 
public class AdaptateurVueTable extends AbstractTableModel{
 
	private Modele modele ;
 
	public AdaptateurVueTable(Modele modele){
		this.modele = modele ;
	}
 
	public int getRowCount(){
 
		return 20; }
 
 
	public int getColumnCount(){
		return 1 ;}
 
	public String getColumnName(int index) {
		return "liste des logiciels" ;
	}
 
 
	public Object getValueAt(int row, int column){
		HashMap logiciels = modele.getLogiciels() ;
		Set cles = logiciels.keySet();
		Iterator it = cles.iterator();
		int i = 0;
		String cle = null;
		while (it.hasNext() && i != row){
			cle = (String)it.next();
                        i++;
 
		}
		System.out.println(" adapt   "+cle);
		return cle ;
	}
 
}
 
package installationLogiciels;
 
import java.util.* ;
import javax.swing.* ;
import javax.swing.border.*;
import java.awt.* ;
 
 
public class VueTable extends JScrollPane implements Observer {
 
	private Modele modele ;
	private AdaptateurVueTable adapt ;
	private JTable table;
 
 
	public VueTable(Modele modele,AdaptateurVueTable adapt){
		super();
		this.setBorder(LineBorder.createGrayLineBorder());
		this.modele = modele ; 
		this.adapt = adapt ;
		table = new JTable(adapt) ; 
 
		this.table.setShowGrid(true);
		this.table.setCellSelectionEnabled(true);
		this.setViewportView(table);
 
 
 
 
 
 
	modele.addObserver(this);
	update(modele,null);
 
	}//VueListe(Modele, Adaptateur)
 
public void update(Observable o, Object arg){
	if (o instanceof Modele){
		// int[] 	getSelectedRows() 
		HashMap logiciels = this.modele.getLogiciels();
		Set cles = logiciels.keySet();
		Iterator it = cles.iterator();
		int i = 0;
		String cle = (String)it.next();
		while (it.hasNext()){
		this.table.setValueAt(cle,i,0);
		cle = (String)it.next();
		i++;
		}//for
 
	}
}
}//class
ma jtable est rempli du nom du premier logiciel qui est ds le fichier texte
pourquoi ? pouvez vous m aider, faut t il utiliser la methode fireTableCellUpdated
merci