2010-03-03 4 views

Répondre

3

vous devez utiliser un custom renderer

+0

Y a-t-il un moyen plus rapide de le faire? – vamsi

+0

malheureusement pas. Le moteur de rendu est ce qui gère la peinture de chaque cellule de table individuelle – objects

+1

theres un exemple et une discussion ici http://www.jguru.com/faq/view.jsp?EID=53764 – objects

2

Vous trouverez peut-être le concept présenté dans Table Row Renderering plus facile à mettre en œuvre. Peut-être garder un ensemble de points (représentant une cellule que vous voulez colorier). Ou peut-être même une carte des points et des couleurs.

1
final JTable table = new JTable(tableModel); 
    table.getTableHeader().addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent mouseEvent) { 
      int selectedHeader = table.convertColumnIndexToModel(table 
        .columnAtPoint(mouseEvent.getPoint())); 

      table.getColumn(table.getColumnName(selectedHeader)) 
        .setCellRenderer(new DefaultTableCellRenderer() { 
         public void setBackground(Color c) { 
          super.setBackground(Color.blue); 
         } 
        }); 
     }; 
    }); 
Questions connexes