uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 24 nov. 2008 à 21:05
Les entêtes de colonnes s'affichent bien chez moi. "DefaultRowSorter" peut accepter des filtres pour les lignes. Il filtre à l'aide d'un "RowFilter" que l'on spécifie en utilisant la méthode "setRowFilter". "RowFilter" décide dans sa méthode "include" par ligne, quelles lignes doivent être affichées. Un "RowFilter" est utile p.ex. pour une fonction de recherche: aussitôt que l'utilisateur tape quelque chose dans un champs de texte, le "RowFilter" ne permet plus que les données qui correspondent au texte introduit.
public MyTableModel(final List<Client> l) {
data = new Object[l.size()][headers.length];
remplirMatrice(l);
}
public int getColumnCount() {
return headers.length;
}
@Override
public void setValueAt(final Object o, final int ligne, final int colonne) {
data[ligne][colonne] = o;
fireTableCellUpdated(ligne, colonne);
}
@Override
public boolean isCellEditable(final int l, final int c) {
return true;
}
@Override
public Class getColumnClass(final int c) {
return headers[c].getClass();
}
@Override
public String getColumnName(final int col) {
return headers[col].toString();
}
//declaration du matrice
public void remplirMatrice(final List<Client> l) {
int i = 1;
data = new Object[1 + l.size()][getColumnCount()];
while (i < (l.size())) {
for (Client cl : l) {
data[i][0] = cl.getId();
data[i][1] = cl.getNom();
data[i][2] = cl.getAdresse();
data[i][3] = cl.getVille();
data[i][4] = cl.getCode();
data[i][5] = cl.getModedepaiement();
i++;
}
}
}
public void dump() {
for (int i = 0; i < data.length; i++) {
System.out.print("|");
for (int j = 0; j < data[0].length; j++) {
System.out.print(data[i][j] + "|");
}
System.out.println();
}
}
public int getRowCount() {
return data.length;
}
public Object getValueAt(final int rowIndex, final int columnIndex) {
return data[rowIndex][columnIndex];
}
}
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 29 nov. 2008 à 16:34
Si isCellEditable renvoie "true", la cellule correspondate est modifiable et nous pouvons entrer une nouvelle valeur. La méthode setValueAt reçoit cette valeur et nous pouvons modifier les données. Pour finir, nous appelons la méthode fireTableCellUpdated qui actualise l'affichage des données. Nous trouvons encore plus d'infos dans le tutorial JTable de Sun:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
Vous n’avez pas trouvé la réponse que vous recherchez ?
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 5 déc. 2008 à 05:38
"ces trucs la" devraient fontionner. Si ça ne fonctionne pas chez toi, alors fais-nous un court exemple indépendant et exécutable pour nous montrer exactement le problème.
voilemiss
Messages postés46Date d'inscriptionmardi 5 juin 2007StatutMembreDernière intervention16 janvier 20104 23 nov. 2008 à 02:15
slt,
merci
bien pour linformation moi jai deja visité ce site est mon code est pafait mais je c pas le probleme d'affichage de noms de colonne alors es ce que que je peux avoir une idée sur la selection par critere????
voilemiss
Messages postés46Date d'inscriptionmardi 5 juin 2007StatutMembreDernière intervention16 janvier 20104 24 nov. 2008 à 19:45
slt,
dsl jé pas terminé jvous dis pk les entetes de colonnes ne saffichent pas ? en principe le code est bon.AINSI je vous demande comment je peux faire une selection par un critere par exemple afficher les clients qui leurs mode de paeiment est visa cé suivant un critere disant
merci pk pour votre reponse monsieur
voilemiss
Messages postés46Date d'inscriptionmardi 5 juin 2007StatutMembreDernière intervention16 janvier 20104 28 nov. 2008 à 22:31
alors jé utilisé la criteria voila
public class HibernateCriteriaQueryExample
{
public static List<Client> selectClientCritere(String crtiter){
Session session = HibernatUtil.currentSession();
Criteria criteria = session.createCriteria(Client.class)
.add(Restrictions.eq(crtiter, 123));
List<Client> Clients = criteria.list();
return Clients;
}
puis pour laffichage de tableau jé fais
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable(new MyTableModel(HibernateCriteriaQueryExample.selectClientCritere("Code")));
}
return jTable;
}
mnt je v recupere le critere d'un jcombobox et la valeur de jtextfield en principe je v utilier le getSelectedItem() .alors il faut que je fais une liste pour le jcombobox pour enter les champs?? et comment je peux faire une jtable dynamique ou editable ??? pouvez vous m'aider
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 29 nov. 2008 à 03:30
Pour faire une JTable éditable, nous pouvons implémenter les méthodes isCellEditable et setValueAt du TableModel. Je ne connais pas Hibernate, donc je ne sais pas répondre à l'autre question.
voilemiss
Messages postés46Date d'inscriptionmardi 5 juin 2007StatutMembreDernière intervention16 janvier 20104 29 nov. 2008 à 14:41
oh merci pose sur vos repondes. jai fais deja ces methodes la mais je cherche a rendre my jtable dynamique de façon que je peux modifier les cases et les ligne et les colonnes ??
voilemiss
Messages postés46Date d'inscriptionmardi 5 juin 2007StatutMembreDernière intervention16 janvier 20104 7 déc. 2008 à 22:43
alors j'ai fait un jComboBox pour le choix de critaire mais je trouve pas comment afficher les donées dans un tableau dasn action performed voila le code:
}
:///// ici le crtaire c'est le nom ou ville ou adresse ou mode de paiment enfin jai un affichage de liste mais je peux la sortir dans un tableau /////
else
{
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable();
}
return jTable;
}
d'abitude je fais:
jTable = new JTable(new MytableModel(Clients()));comme sa jaurais affichage mais cette fois celle ci il na pas accepter la liste clients qui est la sortie de criteria comme vous voyer dans laction performed ??,
il fo ke je fasse koi ???,,
voilemiss
Messages postés46Date d'inscriptionmardi 5 juin 2007StatutMembreDernière intervention16 janvier 20104 13 déc. 2008 à 21:10
slt,
alors jai fais une classe SimpleTableDemo qui implement TableModelListener et jai fais des modification ds MyTableModel les voila
public void setValueAt(Object o, int ligne, int colonne)
{
System.out.println("......SetValueAT......");
data[ligne][colonne]=o;
System.out.println("data['"+ligne+"']['"+colonne+"']= "+o.toString());
public void tableChanged(TableModelEvent e) {
System.out.println("tableChanged");
int row = e.getFirstRow();
int column = e.getColumn();
MyTableModel model = (MyTableModel)e.getSource();
// if (e.getType()==3)
String columnName = model.getColumnName(column);
Object data = model.getValueAt( row, column );
if (e.getType()==TableModelEvent.UPDATE)
traiterData(data);
}
Le prob se pose c'est ou dessus de evenement de jButton ,lupdate se fait dans Jtable mais pas dans la base de données .
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
if (tableau.isCellSelected(2, 1))
System.out.println("selected");
else
tableau.setValueAt("ddddddddd", 3, 3);