2010-03-03 42 views

回答

3

你需要使用一个custom renderer

+0

难道没有更简单快捷的方法来做到这一点吗? – vamsi 2010-03-03 05:50:19

+0

不幸的不是。渲染器是处理绘制每个单独的表格单元格 – objects 2010-03-03 05:54:28

+1

这里的一个示例和一些讨论在这里http://www.jguru.com/faq/view.jsp?EID=53764 – objects 2010-03-03 05:57:35

2

您可能会发现在Table Row Renderering更容易实现提出的概念。也许保留一组点(代表你想要着色的单元格)。或者甚至可能是一个点和颜色的地图。

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); 
         } 
        }); 
     }; 
    }); 
相关问题