Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BOOLEAN RENDERER POUR JTABLE


Information sur la source

Catégorie :Swing Classé sous : jtable, cellule, couleur Niveau : Initié Date de création : 08/02/2003 Date de mise à jour : 08/02/2003 12:55:23 Vu : 6 924

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Description

Class Java permettant d'afficher une couleur dans
une cellule d'une JTable en fonction d'un objet Boolean s'y trouvant.
Gris = Vrai ; Blanc = Faux ; bleu = cellule sélectionnée
 

Source

  • import javax.swing.table.*;
  • import javax.swing.*;
  • import java.awt.*;
  • import java.awt.event.*;
  • public class BooleanRenderer extends DefaultTableCellRenderer
  • {
  • public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
  • int column)
  • {
  • // Appel de la méthode de la classe mère
  • Component comp = super.getTableCellRendererComponent(
  • table, value, isSelected, hasFocus, row, column);
  • // Récupération du Jlabel qui est renvoyé
  • JLabel label = (JLabel)comp;
  • // Mise en place d'un text vide
  • label.setHorizontalTextPosition(JLabel.CENTER);
  • label.setText("");
  • // Sélection de la couleur à afficher en fonction de l'Object value qui est un
  • // objet Boolean => ici Object value
  • // que l'on aura placé lors de la création de la JTable
  • // CF. DefaultTableModel dtm = new DefaultTableModel
  • // (cells,columnNames);
  • if(((Boolean)value).booleanValue()) label.setBackground( Color.gray );
  • else
  • label.setBackground( Color.white );
  • if(isSelected)
  • label.setBackground(Color.blue);
  • // Renvoie du Component (ici un JLabel) qui sera affiché dans la cellule
  • return label;
  • }
  • }
import javax.swing.table.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class BooleanRenderer extends DefaultTableCellRenderer 
{
	public Component getTableCellRendererComponent (JTable table,			Object value, boolean isSelected,				boolean hasFocus, int row,
			int column) 
	{
	
	// Appel de la méthode de la classe mère  
	
	Component comp = super.getTableCellRendererComponent(
                                         table, value, isSelected, hasFocus, row, column);
		
	// Récupération du Jlabel qui est renvoyé
	
		JLabel label = (JLabel)comp;
	
	// Mise en place d'un text vide 
		label.setHorizontalTextPosition(JLabel.CENTER);
		label.setText("");
	

     // Sélection de la couleur à afficher en fonction de l'Object value qui est un 
     // objet Boolean => ici Object value
     // que l'on aura placé lors de la création de la JTable 
     // CF. DefaultTableModel dtm = new DefaultTableModel
     //                                                                    (cells,columnNames);
        
		if(((Boolean)value).booleanValue())				label.setBackground( Color.gray );
		else
			label.setBackground( Color.white );
		
                                if(isSelected)
		                 label.setBackground(Color.blue);
		
// Renvoie du Component (ici un JLabel) qui sera affiché dans la cellule
		return label;
	}
}

 

Conclusion

Si vous voulez d'autres trucs sur les swing du genre un JTree qui charge ses noeuds dynamiquement faite-le moi savoir :))

Au fait on n'est pas obliger de faire ça avec un Boolean, ça peut être in Integer ou une String il suffira de faire le bon cast et d'affecter une couleur spécifique en fonction.
Notez également qu'on n'est pas obligé de renvoyer un JLabel, un Component
de votre fabrication peut également faire l'affaire

 

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

couleur de cellule dans une JTable [ par javateux ] bonjour, voila mn probleme:j veu colorer des cellules selectionnées dans une table et les garder en couleur, existe-t-il des proprietés pour la table Mettre en couleur la cellule selectionnee d'une JTable [ par kobee12 ] Salut a tous.J'aimerais pouvoir mettre en couleur la cellule que je selectionne en cliquant(par exemple le contour de la cellule en rouge).Je n'arrive Cellule JTable [ par javateux ] Salut, super g reussit à changer les couleur de cellules dans un jtable...le probleme c'est que la couleur est changée pour toute la colonne et non se couleur de jtable [ par adil1251985 ] besoin d'aide SVP alors je veux colorier quelques cellules de mon JTable selon le critère de la valeur de cette cellule c-a-d si la cellule n'est pas jTable et KeyPressed [ par circuit ] Bonjour a tous, je débute tous juste en java (habituer au visual basic), est je ne comprends par le fonctionnement de jTable avec l'événement KeyPres JTable LostFocus sur Cellule editable [ par crakos ] Bonjour,Voila j'ai crée mon JTable(JTextField) avec 5 colonnes dont 2 editables.Dans la premiere colonne je saisis un numero article est ca rempli sur cellule de jtable [ par kawtar_ch ] Bonjour tout le monde!!est-ce qu'on peut retourner a la ligne dans une cellule de jTable comme c le cas pour excel?Si c'est oui, comment peut-on faire EDITER CELLULE JTABLE [ par kyript ] Salut à tousj'essaye de rendre les cellule d'un JTable éditable  afin de mettre à jour une base de donnée.Mais je comprend pas le systeme de fonctionn prb JTable: l'utilisation de setCellSelectionEnabled() [ par Sebastien_teisseire ] voila, je souhaite empecher que l'utilisateur puisse selectionner une cellule, je fais donc dans mon constructeur de Jtable; _tableau.setCellSelection Relance: Saut de ligne dans la cellule d'une Jtable [ par empiret ] http://www.javafr.com/forum.v2.aspx?id=450128 - ne pas fixer la hauteur des cellules - en rajoutant dans ton texte la réprésentation du sau


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.