Table de changement de couleur de la cellule en Java
J'ai lu et mis en œuvre ce Changement de JTable couleur de la cellule
Ce que j'aimerais savoir, c'est comment utiliser ce code? Je veux juste changer une cellule de tableau est de couleur lorsque je clique sur elle.
OriginalL'auteur pypmannetjies | 2010-05-06
Vous devez vous connecter pour publier un commentaire.
Dans le code que vous consultez, vous avez CellRenderer.
Une fois que vous l'ajouter à la table, tout ce que vous avez besoin est de faire la mise en forme à l'endroit approprié:
Un DefaultTableCellRenderer est rien de plus ou de moins que le composant qui sera utilisé dans la JTable, à peindre les cellules. Pour être plus précis, dans ce cas, le composant est un JLabel (vous pouvez le voir par la vérification des sources de DefaultTableCellRenderer).
Donc toute la mise en forme que vous devez faire est sur le "c" de l'objet (ou de "ce", puisque la méthode renvoie en fait le même composant à chaque fois: lui-même). Par exemple,
c.setBackground()
vous permettra de définir une couleur d'arrière-plan.La
getTableCellRendererComponent()
méthode qui est substituée sera appelée pour chaque cellule de la JTable, avec des paramètres de vous parler du contexte. Vous connaissez le tableau, la ligne, la colonne, la valeur qui est censé être affiché, et vous savez aussi si la cellule est sélectionnée ou non, qui pourraient vous aider dans votre cas:Pour aller plus loin, notez que parce que vous remplacez la DefaultTableCellRenderer classe, et d'utiliser sa propre méthode, vous avez déjà une certaine mise en forme fait, comme la couleur d'arrière-plan, qui est celui de la table. En tant que tel, il vous suffit de définir votre propre couleur lorsque vous en avez besoin. Si non, vous devrez prendre soin de tous les cas, parce que depuis le même composant est utilisé, vous vous retrouveriez avec le jeu de couleurs à la fois, puis de l'appliquer à toutes les cellules consécutives, parce que rien n'aurait été fait pour le changer.
Je vous recommande de lire les sources de DefaultTableCellRenderer (et ses utilisations dans la JTable), si vous voulez en savoir plus sur la façon dont il est fait et utilisé.
OriginalL'auteur Gnoupi
Est-ce à dire la couleur de la cellule change pour toujours, ou faut-il réinitialiser une fois que vous cliquez sur une autre cellule.
Si vous voulez juste la couleur pour changer temporairement, le plus simple est d'utiliser les concepts présentés dans Ligne De Tableau De Rendu de sorte que vous n'avez pas à créer plusieurs moteurs de rendu pour chaque type de données.
Si vous voulez la couleur de la cellule permanente, alors il est beaucoup plus impliqué, parce que maintenant vous avez réellement besoin d'enregistrer les données pour chaque cellule qui doit être coloré différemment. De nouveau, l'approche la plus simple est d'utiliser l'approche par dessus et puis peut-être garder un Ensemble de toutes les cellules de couleur.
OriginalL'auteur camickr
J'ai eu du mal aussi quand je voulais de la couleur d'une cellule donnée dans la JTable.
Vous pouvez créer un tableau personnalisé de cellules du rendu et de l'envoyer en ligne/col params:
OriginalL'auteur catalinp