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
404 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!

source:php.cn
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