web-dev-qa-db-fra.com

JTable - Événement de clic sur la ligne sélectionnée

J'ai une Jtable qui est remplie d'une liste liée via un AbstractTableModel.

Ce que je veux faire, c'est quand je clique (clic gauche) sur une ligne de la JTable, la liste liée est la recherche (dans ce cas, elle contient des titres de films) et affiche les valeurs dans la liste liée dans Jtextboxes

Comment puis-je faire cela?

Voici le code

Je suppose qu'il récupère les données de la ligne sélectionnée dans un tableau, les divise et les place dans les jtextareas. Comment puis-je faire ceci ?

23
Brian

Voici comment je l'ai fait:

table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
        public void valueChanged(ListSelectionEvent event) {
            // do some actions here, for example
            // print first column value from selected row
            System.out.println(table.getValueAt(table.getSelectedRow(), 0).toString());
        }
    });

Ce code réagit au clic de souris et à la sélection des éléments à partir du clavier.

51
Michael Kazarian

Pour savoir quelle ligne a été sélectionnée, ajoutez un ListSelectionListener , comme indiqué dans Comment utiliser les tableaux dans l'exemple SimpleTableSelectionDemo . Une JList peut être construite directement à partir de la méthode toArray() de la liste liée, et vous pouvez y ajouter un écouteur approprié pour plus de détails.

5
trashgod
 private void jTable1MouseClicked(Java.awt.event.MouseEvent evt) {                                     
     JTable source = (JTable)evt.getSource();
            int row = source.rowAtPoint( evt.getPoint() );
            int column = source.columnAtPoint( evt.getPoint() );
            String s=source.getModel().getValueAt(row, column)+"";

            JOptionPane.showMessageDialog(null, s);


} 

si vous voulez cliquer sur vendre dans jtable, utilisez de cette façon

3
Shinwar ismail

Je recommanderais d'utiliser Listes glacées pour cela. Il est très facile de mapper une structure de données à un modèle de table.

Pour réagir au clic de souris sur la JTable, utilisez un ActionListener: ActionListener sur JLabel ou cellule JTable

1
Wim Deblauwe