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 / Exemple :
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
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.