Maison > Java > javaDidacticiel > Comment synchroniser les sélections de cases à cocher de plusieurs lignes dans une JTable ?

Comment synchroniser les sélections de cases à cocher de plusieurs lignes dans une JTable ?

Patricia Arquette
Libérer: 2024-12-18 17:10:15
original
190 Les gens l'ont consulté

How to Synchronize Multiple Row Checkbox Selections in a JTable?

Sélection de plusieurs lignes dans JTable

Lorsque vous êtes confronté à un JTable contenant du texte non modifiable et des cases à cocher booléennes, il est souhaitable de décocher toutes les cases sous sélection lorsque l'un d'entre eux n'est pas coché, et vice versa.

Pour faciliter ce comportement, considérons l'exemple ci-dessous :

import java.awt...;
import javax.swing...;

public class CheckABunch extends JPanel {
    // Constants and variables for data model and JTable setup
    private static final int CHECK_COL = 1;
    private static final Object[][] DATA = {...};
    private static final String[] COLUMNS = {...};
    private DataModel dataModel = ...;
    private JTable table = ...;
    private DefaultListSelectionModel selectionModel;

    // Constructor initializes the interface and selection model
    public CheckABunch() {
        super(new BorderLayout());
        ...
        table.setPreferredScrollableViewportSize(...);
        selectionModel = ...;
    }

    // DataModel provides custom column classes and editability
    private class DataModel extends DefaultTableModel {
        public DataModel(Object[][] data, Object[] columnNames) {...}
        public Class<?> getColumnClass(int columnIndex) {...}
        public boolean isCellEditable(int row, int column) {...}
    }

    // ControlPanel contains buttons for selecting and clearing
    private class ControlPanel extends JPanel {
        public ControlPanel() {...}
    }

    private class SelectionAction extends AbstractAction {
        boolean value;
        public SelectionAction(String name, boolean value) {...}
        public void actionPerformed(ActionEvent e) {...}
    }

    // Main method for creating and displaying the interface
    public static void main(String[] args) {...}
}
Copier après la connexion

Dans cet exemple, SelectionAction gère les clics sur les boutons pour mettre à jour les cases à cocher en fonction de la sélection de l'utilisateur. Le dataModel garantit que la colonne de cases à cocher est modifiable et du type correct.

En utilisant cette approche, vous pouvez facilement implémenter la sélection et la synchronisation de cases à cocher sur plusieurs lignes dans votre JTable.

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