Mudando cor da tabela e selecionado toda a linha

Boa noite,

Minha duvida é a seguinte uso este método para mudar as cores das linhas de uma JTable:

// renderização das linhas da tabela = mudar a cor tabela.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (row % 2 == 0) { setBackground(Color.WHITE); } else { setBackground(Color.LIGHT_GRAY); } return this; } });

Porém quando ativo este método, ao selecionar uma linha, ele seleciona célula por célula. No caso antes de usa o método, selecionava a linha inteira e gostaria que permanece selecionado toda linha.

Alguém sabe como fazer isso?
Att

Você também deve tratar a pintura quando o parâmetro isSelected estiver ativo.

Dica: Os parâmetros não estão lá por acaso.

// renderização das linhas da tabela = mudar a cor tabela.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (isSelected) { setBackground(Color.BLUE); } else if (row % 2 == 0) { setBackground(Color.WHITE); } else { setBackground(Color.LIGHT_GRAY); } return this; } });

[quote=ViniGodoy]Você também deve tratar a pintura quando o parâmetro isSelected estiver ativo.

Dica: Os parâmetros não estão lá por acaso.

// renderização das linhas da tabela = mudar a cor tabela.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (isSelected) { setBackground(Color.BLUE); } else if (row % 2 == 0) { setBackground(Color.WHITE); } else { setBackground(Color.LIGHT_GRAY); } return this; } });[/quote]

Muito obrigado amigo, isso mesmo que estava querendo.
E obrigado pela dica.
Abraço

Galera é possível aplicar esse método na minha aplicação?
No meu caso, gostaria que mudasse o background de uma linha quando a tabela fosse atualizada baseada na condição da 5ª coluna!! (valor da 5ª coluna ser igual a 1)

O que eu fiz até o momento foi criar um for para verificar o valor de cada coluna, linha por linha e, caso o valor seja o desejado, mudar a cor da linha inteira!!!

int qtdLinhas = table.getModel().getRowCount();		
		for(int linha = 0; linha <= qtdLinhas-1; linha++){
			int verificador = (Integer) table.getModel().getValueAt(linha, 5);		
				if(verificador == 1){
					//MÉTODO PARA MUDAR O BACKGROUND DA LINHA INTEIRA.
				}
			
		}
		table.getTableHeader().resizeAndRepaint();

EDIT:

Eu fucei e tentei este jeito, mas muda a cor de todas!!

table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {  
			@Override  
			public Component getTableCellRendererComponent(JTable table, Object value,  
				boolean isSelected, boolean hasFocus, int row, int column) {  
				Component result = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);  							
				
				Object ref = table.getValueAt(row, 5); 
		                  if (ref != null && (Integer.parseInt(ref.toString()) == 1))   
		                  result.setBackground(Color.LIGHT_GRAY);  
		             
		     
			/**if (row % 2 == 0) {  
	                    setBackground(Color.WHITE);  
	                } else {  
	                    setBackground(Color.LIGHT_GRAY);  
	                }**/ 
	                return result;  
	                
	            }  
	        });
		table.getTableHeader().resizeAndRepaint();	

Consegui arrumar galera, além de corrigir a sintaxe no if, é precisa adicionar um else para voltar o background normal!!

table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {  
			/**
			 * 
			 */
			private static final long serialVersionUID = 1L;
			@Override  
			public Component getTableCellRendererComponent(JTable table, Object value,  
				boolean isSelected, boolean hasFocus, int row, int column) {  
				Component result = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);  							
				
				Object ref = table.getValueAt(row, 5); 
		        if (ref != null && (Integer.parseInt(ref.toString())) == 1)  { 
		            result.setBackground(Color.LIGHT_GRAY);  }
		        else {
		        	result.setBackground(Color.WHITE);
		        }
	                return result;                  
	            }  
	        });