Bonjour à tous,

Je suis nouvelle sur ce site et (très) débutante en informatique...

J'essaie de récupérer une ligne sélectionnée dans un JTable mais en vain. Mon JTable s'affiche correctement mais lorsque je veux récupérer la ligne sélectionnée, elle est toujours à -1.

Voici mon code pour remplir mon JTable :

public void remplirTableau()
{
String req = "SELECT * FROM personne";
try
{
// C'est une classe que l'application emploie pour transmettre des instructions à la base,
// elle représente une requête SQL. La fermeture d'un Statement engendre la fermeture automatique des tous les
// ResultSet associés.
Statement stmt = con.createStatement();
// Cette classe symbolise un ensemble de résultats dans la base de données et autorise l'accès aux résultats
// d'une requête rangée par rangée. Pendant le traitement de la requête, un ResultSet conserve un pointeur vers
// la rangée manipulée. L'application se déplace séquentiellement dans l'ensemble des résultats.
ResultSet srs = stmt.executeQuery(req);
// ResultSetMetaData metadata = resultat.getMetaData();
// int nombreColonnes = metadata.getColumnCount();
// System.out.println("Ce ResultSet contient "+nombreColonnes+" colonnes.");
ResultSetMetaData meta = srs.getMetaData();
// On initialise un tableau d'Object pour les en-têtes du tableau
Object[] column = new Object[meta.getColumnCount()];
// On remplit le tableau avec le nom des entêtes
// On demarre la boucle à 1 car getColumnCount renvoie un chiffre de 1 à n
for(int i = 1 ; i <= meta.getColumnCount(); i++)
{
// i-1 car le tableau débute à 0
column[i-1] = meta.getColumnName(i);
}
//Petite manipulation pour obtenir le nombre de lignes
//On se place sur le dernier enregistrement
srs.last();
// On initialise un tableau d'Object à deux dimensions pour les données
Object[][] data = new Object[srs.getRow()][meta.getColumnCount()];
//On se place avant le premier enregistrement
srs.beforeFirst();
int j = 1;

//On remplit le tableau d'Object[][]
while(srs.next())
{
for(int i = 1 ; i <= meta.getColumnCount(); i++)
{
data[j-1][i-1] = srs.getObject(i);
}
j++;
}

srs.close();
stmt.close();

DefaultTableModel model = new DefaultTableModel(data,column);
jTable1.setModel(model);
jTable1 = new JTable(data,column)
{
// Permet de rendre les cellules de la JTable non éditables
// Mise à true par défaut
public boolean isCellEditable(int row, int column)
{
return false;
// if (lig == 1 && col == 2)
// return false; Modification des données impossible
// else
// return true; Modification des données possible
}
};
// la méthode getContentPane() permet d'ajouter n'importe quel composant graphique
// On ajoute un jScrollPane ce qui permet d'afficher plus de lignes que la fenêtre ne le permet
getContentPane().add(new JScrollPane(jTable1), BorderLayout.CENTER);
int nbrcolonne = jTable1.getColumnCount();
int nbrligne = jTable1.getRowCount();
System.out.println(nbrcolonne + " "+nbrligne);
}
catch (SQLException e)
{
System.out.println("SQL Exception: " + e.toString());
}
}

J'espère que quelqu'un pourra m'aider...

Je vous souhaite une très belle fin de soirée.

Merci