Problème avec mon renderer
Bonjour tous le monde
j'ai un problème avec ma jtable : normalement quand aucun renderer n'est appliqué sur la table , on peut selectionner les lignes (la ligne se colorie en bleu)
mais quand j'applique mon renderer qui modifie la couleur des cellules suivant la valeur de d'autres cellules, cette selection n'est plus activée .
pour d'autres renderer que j'ai trouvé sur le web et qui modifient aussi la couleur des cells ,ce problème n'est pas posé .
voici mon renderer
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class NewRenderer extends JTextArea implements TableCellRenderer {
public NewRenderer () {
setLineWrap(true);
setWrapStyleWord(true);
}
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
setText((String)value);
table.setColumnSelectionAllowed(true);
table.setRowSelectionAllowed(true);
if ( table.getModel().getValueAt(row,1).toString()=="150")
{
this.setBackground(Color.orange);
}
else
if (table.getModel().getValueAt(row,1).toString()=="l12")
{
this.setBackground(Color.red);
setFont(new Font("SansSerif", Font.BOLD, 12));
}
else
if (table.getModel().getValueAt(row,1).toString()=="l33")
{
System.out.println(row);
this.setBackground(Color.green);
setFont(new Font("SansSerif", Font.ITALIC, 12));
}
//this.setForeground(Color.orange);
else
{
this.setFont(new Font("SansSerif", Font.PLAIN, 12));
this.setBackground(Color.white);
this.setForeground(Color.black);
}
return this;
}} |