Si tu écris les xxxx manuellement, tu n'as pas besoin de Renderer.
Le Renderer d'une JTable est un objet qui possède une méthode getTableCellRendererComponent qui retourne le composant qui correpond à une cellule de la table.
/**
* @param table
* La table sur laquelle on applique le renderer
* @param value
* La valeur à afficher dans la cellule
* @param isSelected
* Booleen vrai si la cellule est selectionnee
* @param hasFocus
* Booleen vrai si la cellule a le focus (peu utilisé)
* @param row
* numéro de la ligne
* @param column
* numéro de la colonne
* @return le composant à afficher
*/
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
Donc, si tu veux créer un Renderer qui fasse que la colonne i soit un JPasswordField, tu créé une classe MyRendererDecorator qui étend TableCellRenderer et qui contient un DefaultTableCellRenderer (renderer).
Ta méthode getTableCellRendererComponent est alors :
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c = null;
if(column!=5){
c = renderer.getTableCellRendererComponent(
table,
value,
isSelected,
hasFocus,
row,
colums
);
}
else{
c=new JPasswordField(value.toString());
}
return c;
}
Si tu veux voir un exemple d'utilisation des Renderer : http://www.javafr.com/codes/JTABLE-CUSTOMISEE_53607.aspx