JTable : trouver la fonction qui nous donne l'index de la ligne

Fermé
Fenlabise - 1 mars 2013 à 16:23
 Fenlabise - 2 mars 2013 à 12:28
Bonjour,




Une chose me bloque, je n'ai pas trouvé la réponse ni dans les livres ni sur internet, alors je vous pose la question :
Pour afficher mes données dans un tableau, j'utilise la classe JTable comme suit :
TableauType modeleType = new TableauType(tableNom, titre);
//on instancie un tableau en y insérant le modèle ci-dessus
this.tableau = new JTable(modeleType);

et le modèle en instanciant la classe TableauType qui commence ainsi :
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;

class TableauType extends AbstractTableModel {

avec toutes ses méthodes comme getValueAt(), addRow(), etc...
Tout fonctionne très bien.
Seulement, quand je me déplace dans ce tableau soit avec les flèches de direction, soit avec l'ascenseur, soit avec la souris, je voudrais savoir à chaque instant à quelle ligne et à quelle colonne je suis. Je pense que Java devrait le savoir mais je n'ai encore pas trouvé la méthode pour récupérer cet index de ligne et colonne. Il devrait être du genre : getRowIndex() mais cette méthode ne fait pas partie de la classe AbstractTableModel que j'utilise.
Alors faut-il utiliser une autre classe?
ou bien importer un autre package (import ...)
Vous avez certainement une idée.

Merci, Fenlabise.

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
1 mars 2013 à 17:56
Si j'ai bien compris ce que tu veux, tu devrais regarder How to Write a List Selection Listener. Exemple :

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class Test
{
public static void main(String[] args)
{
String[] header = { "A", "B"};
String[][] data = {{"a0","b0"},{"a1","b1"},{"a2","b2"},{"a3","b3"},{"a4","b4"},{"a5","b5"}};

JTable table = new JTable(data,header);

ListSelectionModel selection = table.getSelectionModel();
selection.addListSelectionListener(new ListSelectionListener()
{
	@Override
	public void valueChanged(ListSelectionEvent e)
	{
		System.out.println(e);
	}
});

JFrame frame = new JFrame();
frame.add(new JScrollPane(table));
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
0
Merci KX,
c'est exactement ce que je recherchais. Il ne me reste plus qu'à trouver les méthode de la classe et j'intègre dans mon programme.
Fenlabise
0