Modele set de table

Toutes les cases d`option sous “mode de sélection” appellent JTable. setSelectionMode. Cette méthode prend un seul argument, qui doit être l`une des constantes suivantes définies dans javax. swing. ListSelectionModel: MULTIPLE_INTERVAL_SELECTION, SINGLE_INTERVAL_SELECTION et SINGLE_SELECTION. Ensuite, la table est construite à l`aide de ces données et columnNames: cette table est différente de la table SimpleTableDemo de la manière suivante: le code est assez simple, sauf peut-être pour l`appel à convertColumnIndexToModel. Cet appel est nécessaire car si l`utilisateur déplace les colonnes autour, l`index de la vue de la colonne ne correspondra pas à l`index du modèle pour la colonne. Par exemple, l`utilisateur peut faire glisser la colonne végétarien (que le modèle considère comme étant à l`index 4) afin qu`elle soit affichée en tant que première colonne à l`index 0 de la vue. Étant donné que prepareRenderer fournit l`index de vue, vous devez traduire l`index de vue en un index de modèle afin que vous puissiez être sûr que la colonne voulue a été sélectionnée. Comme le montre le code précédent, chaque colonne d`une table est représentée par un objet TableColumn. TableColumn fournit des méthodes getter et setter pour les largeurs minimales, privilégiées et maximales d`une colonne, ainsi qu`une méthode pour obtenir la largeur actuelle.

Pour obtenir un exemple de définition des largeurs de cellule en fonction d`une approximation de l`espace nécessaire pour dessiner le contenu des cellules, consultez la méthode initColumnSizes dans TableRenderDemo. java. Pour avoir plus de contrôle sur le tri, vous pouvez construire une instance de TableRowSorter et spécifier qu`il s`agit de l`objet trieur de votre table. La classe IntegerEditor est implémentée sous la forme d`une sous-classe de DefaultCellEditor qui utilise un JFormattedTextField au lieu du JTextField pris en charge par DefaultCellEditor. Il accomplit ceci en configurant d`abord un champ de texte formaté pour utiliser un format entier et avoir les valeurs minimales et maximales spécifiées, à l`aide de l`API décrite dans comment utiliser des champs de texte formatés. Il substitue ensuite l`implémentation DefaultCellEditor des méthodes getTableCellEditorComponent, getCellEditorValue et stopCellEditing, en ajoutant les opérations nécessaires aux champs de texte formatés. Chaque objet table utilise un objet de modèle de table pour gérer les données réelles de la table. Un objet de modèle de table doit implémenter l`interface TableModel. Si le programmeur ne fournit pas d`objet de modèle de table, JTable crée automatiquement une instance de DefaultTableModel.