Modele de table

Que faire si vous souhaitez spécifier un éditeur autre qu`un champ de texte, une case à cocher ou une zone de liste déroulante? Comme DefaultCellEditor ne prend pas en charge d`autres types de composants, vous devez faire un peu plus de travail. Vous devez créer une classe qui implémente l`interface TableCellEditor. La classe AbstractCellEditor est une bonne superclasse à utiliser. Il implémente la superinterface de TableCellEditor, CellEditor, vous permettant de vous épargner la peine d`implémenter le code de déclenchement de l`événement nécessaire pour les éditeurs de cellules. JTable fournit une API simple pour l`impression de tables. Le moyen le plus simple d`imprimer une table est d`invoquer JTable. Print sans arguments: le constructeur JTable utilisé par SimpleTableDemo crée son modèle de table avec du code comme ceci: dans l`instantané de TableDialogEditDemo, le convertisseur utilisé pour les cellules de couleur préférée est un sous-classe de JLabel appelée ColorRenderer. Voici des extraits de ColorRenderer. Java qui montrent comment il est implémenté. 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. Un modèle de table peut avoir un ensemble d`écouteurs qui sont notifiés chaque fois que les données de la table changent. Les écouteurs sont des instances de TableModelListener. Dans l`exemple de code suivant, SimpleTableDemo est étendu pour inclure un tel écouteur. Le nouveau code est en gras. La substitution de getTableCellEditorComponent définit la propriété Value du champ de texte formaté (et pas seulement la propriété Text qu`elle hérite de JTextField) avant que l`éditeur ne soit affiché. La substitution de getCellEditorValue conserve la valeur de la cellule en tant qu`entier, plutôt que, disons, la valeur longue que l`analyseur du champ de texte formaté tend à retourner. Enfin, la substitution de stopCellEditing vous permet de vérifier si le texte est valide, ce qui peut empêcher l`éditeur d`être rejeté. Si le texte n`est pas valide, votre implémentation de stopCellEditing met en place une boîte de dialogue qui donne à l`utilisateur la possibilité de continuer à modifier ou à revenir à la dernière bonne valeur. Le code source est un peu trop long à inclure ici, mais vous pouvez le trouver dans IntegerEditor.

java. Pour plus de documentation, consultez Création d`un modèle de table dans le didacticiel Java. La table dans SimpleTableDemo. Java déclare les noms de colonnes dans un tableau String: le widget de classe est un objet de données très simple qui adhère à la norme JavaBean. L`astuce suivante est d`être en mesure de visualiser ces widgets à l`intérieur d`un JTable et d`accéder facilement et de manipuler les widgets qui sont affichés dans cette table sans une grande quantité de casting ou de complexité. Il est facile de personnaliser le texte ou l`image rendu par le moteur de rendu par défaut, DefaultTableCellRenderer. Il vous suffit de créer une sous-classe et d`implémenter la méthode setValue afin qu`elle appelle setText ou setIcon avec la chaîne ou l`image appropriée. Par exemple, voici comment le rendu de date par défaut est implémenté: le code source est dans TableRenderDemo. java. Il ajoute des conseils d`outils aux cellules de la colonne sport avec le code suivant: comme le montre le code précédent, l`implémentation d`un modèle de table peut être simple. En général, vous implémentez votre modèle de table dans une sous-classe de AbstractTableModel.

Cette table est différente de la table SimpleTableDemo de la manière suivante: si l`extension de DefaultTableCellRenderer est insuffisante, vous pouvez créer un moteur de rendu à l`aide d`une autre superclasse. La méthode la plus simple consiste à créer une sous-classe d`un composant existant, ce qui rend votre sous-classe implémenter l`interface TableCellRenderer. TableCellRenderer ne nécessite qu`une seule méthode: getTableCellRendererComponent. Votre implémentation de cette méthode doit configurer le composant de rendu pour refléter l`état passé, puis retourner le composant. Il n`est pas nécessaire de créer un TableModel personnalisé pour cela. Il suffit d`utiliser le DefaultListModel. 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.

Modele de table

Notice: Undefined variable: ret in /home/nailush/public_html/wp-content/plugins/simple-google-analytics/class/Output.class.php on line 139