2010-03-03 41 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); 
         } 
        }); 
     }; 
    }); 
相關問題