Maison > Java > javaDidacticiel > Comment activer et gérer plusieurs sélections de lignes dans une JTable ?

Comment activer et gérer plusieurs sélections de lignes dans une JTable ?

Barbara Streisand
Libérer: 2024-12-05 19:53:11
original
462 Les gens l'ont consulté

How to Enable and Handle Multiple Row Selections in a JTable?

Sélection de plusieurs lignes JTable

Dans JTable, l'utilisateur peut sélectionner plusieurs lignes en même temps, ce qui est très utile dans certaines situations. Par exemple, vous souhaiterez peut-être effectuer une action lorsque l'utilisateur sélectionne plusieurs lignes. Cet article vous montrera comment procéder.

Pour implémenter la sélection sur plusieurs lignes, vous devez utiliser ListSelectionListener . Cet écouteur surveillera toute modification apportée à la sélection de l'utilisateur et vous pourrez ensuite utiliser la méthode getSelectedRows() pour récupérer l'index des lignes sélectionnées.

    // 添加侦听器以侦听用户选择任何更改
    table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

        public void valueChanged(ListSelectionEvent evt) {
            // 获取所选行的索引
            int[] selectedRows = table.getSelectedRows();

            // 执行所需的任何操作
            for (int i = 0; i < selectedRows.length; i++) {
                // 获得所选行的对象
                Object selectedObject = table.getValueAt(selectedRows[i], 0);

                // 执行所需的操作
            }
        }
    });
Copier après la connexion

Vous pouvez également utiliser la méthode setSelectionMode() sur une JTable pour modifier le nombre de lignes que l'utilisateur est autorisé à sélectionner. Par exemple, le code suivant limitera l'utilisateur à sélectionner une seule ligne :

    // 限制用户只能选择一行
    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
Copier après la connexion

Voici le code complet pour votre référence :

import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class MultipleRowSelectionExample extends JFrame {

    public MultipleRowSelectionExample() {
        Object[][] data = {
                {"John Doe", 30},
                {"Jane Doe", 25},
                {"Tom Smith", 40},
                {"Mary Johnson", 35}
        };

        String[] columns = {"Name", "Age"};

        JTable table = new JTable(data, columns);

        // 添加侦听器以侦听用户选择任何更改
        table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

            public void valueChanged(ListSelectionEvent evt) {
                // 获取所选行的索引
                int[] selectedRows = table.getSelectedRows();

                // 执行所需的任何操作
                for (int i = 0; i < selectedRows.length; i++) {
                    // 获得所选行的对象
                    Object selectedObject = table.getValueAt(selectedRows[i], 0);

                    // 执行所需的操作
                }
            }
        });

        this.add(new JScrollPane(table));
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.pack();
        this.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                new MultipleRowSelectionExample();
            }
        });
    }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal