La classe ResultSetTableModel

Fermé
caro - 4 août 2005 à 17:27
 caro - 5 août 2005 à 11:54
Bonjour, voila j'ai un souci: j'execute une requête et les résultats je les mets dans un tableau grace à la classe ResultSetTableModel Simplement ds ce tableau les cellules peuvent etre modifiées par l'utilisateur , j'ai dc mis la méthode public boolean isCellEditable mais je ne vois pas comment écrire la methode setValueAt si qqn pouvait me la donner parce que je suis vraiment embêtée merci d'avance


public class ResultSetTableModel extends AbstractTableModel{

ResultSet rs=null;
ResultSetMetaData rsmd;

public ResultSetTableModelA(ResultSet aResultSet)
{
rs=aResultSet;
try
{
rsmd=rs.getMetaData();
}
catch(Exception e){
System.out.println("exception");
}
}

public String getColumnName(int col)
{
try
{
return rsmd.getColumnName(col+1);
}
catch (SQLException e){
return Integer.toString(col);
}
}

public int getColumnCount()
{ int res=0;
try
{
res= rsmd.getColumnCount();
}
catch(SQLException e){
System.err.println("getColumnCount() : " + e);
}
return res;
}

public int getRowCount()
{
//int res=0;
try
{
rs.last();
return rs.getRow();
}
catch(SQLException e){
System.err.println("getRowCount() : " + e);
return 0;
}
//return res;
}

public Object getValueAt(int r,int c)
{ Object o = "";
try
{ rs.absolute(r+1);
o= rs.getObject(c+1);
}
catch(SQLException e){
System.err.println("getValueAt() : " +e);
}
return o;
}

public void setValueAt(Object obj,int r,int c)
{
try{
???
}
catch(SQLException e){
System.err.println("setValueAt() : " +e);
}

}

public boolean isCellEditable(int r,int c){
return true;
}


}

1 réponse

choubaka Messages postés 39153 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 24 mars 2023 2 099
5 août 2005 à 08:58
salut

je ne vois pas ce que tu ne comprends pas, tu dois mettre un objet valeur (par exemple un String), les int c et r désigne l'emplacement dans le tableau
0
en fait la méthode setValueAt je l'écris ainsi:
public void setValueAt(Object value,int r,int c)
{
try
{ rs.absolute(r+1);
rs.updateObject(c+1,value);
}
catch..
fireTableCellEnabled(true);
}

je ne sais pas si c'est correct en tout cas mon problème est que lorsque l'utilisateur entre une valeur dans un tableau elle disparait qd on va ds une autre cellule du tableau et je ne vois vraiment pas comment faire
0