Java Tips: Operações com JTable parte 2

Posted on maio 24, 2012. Filed under: Java, Tips | Tags:, |

Introdução

Neste artigo teremos mais alguns exemplos de manipulação de tabelas do JTable do Java. Já abordamos o JTable em um artigo anterior. Portanto, este artigo serve como complemento ao anterior.

  • Bloqueando a seleção de linhas/colunas baseado em uma determinada condição.
  • int linhas = 10;
    int colunas = 3;
    JTable table = new JTable(linhas, colunas) {
    	public void changeSelection(int row, int column, boolean toggle, boolean extend) {
    		DefaultTableModel m = (DefaultTableModel) getModel();
    	
            /* não permite a seleção da linha quando o valor da coluna 3 for igual fechado */
    		if (m.getValueAt(row, 2) != null && m.getValueAt(row, 2).toString().toLowerCase().equals("fechado")) {
    	    	return;
    	    }
    		super.changeSelection(row, column, toggle, extend);
    	}
    };
    
  • Alterando o cor de fundo/primeiro plano de acordo com uma determinada condição.
  • Determina também a cor de fundo/primeiro plano da linha selecionada. Você esta livre para inserir outras lógicas que achar necessário além desse exemplo básico que verifica somente o valor de uma determinada coluna.

    int linhas = 5;
    int colunas = 3;
    JTable table = new JTable(linhas, colunas) {
        public Component prepareRenderer(TableCellRenderer renderer,
                int rowIndex, int vColIndex) {
    		
        	DefaultTableModel m = (DefaultTableModel) getModel();
        	Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);
        	
        	// altera a cor de background da linha para vermelho e foreground para branco
        	// quando o valor da coluna 3 for igual a fechado 
        	if (m.getValueAt(rowIndex, 2).toString().toLowerCase().equals("fechado")) {
        		c.setBackground(new Color(192, 0, 0));
        		c.setForeground(Color.white);
            } else {
            	// mantem a cor padrão de foreground 
            	c.setForeground(getForeground());
            	
            	// determina a cor de background da linha selecionada 
            	if(isCellSelected(rowIndex, vColIndex)) {
            		c.setBackground(new Color(184, 207, 229));
            	} else {
            		// linhas não selecionadas, manter cor de background padrão 
            		c.setBackground(getBackground());
            	}
    
            }			
    		return c;
        }
    };
    

    Exemplo de visualização:

  • Forçar a renderização do JTable
  • O código abaixo pode ser utilizado para renderizar o JTable novamente quando for preciso. No caso de mudança de dados que influencie na lógica usada em algum dos métodos anteriores.

       
    table.updateUI();     
    

Mais dicas

Java Tips: Operações com JTable parte 1
Java Tips: Operações com JTable parte 3

Make a Comment

Deixe uma resposta para Dandara Cancelar resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Uma resposta to “Java Tips: Operações com JTable parte 2”

RSS Feed for Pasqua Tecnologia Comments RSS Feed

É exatamente isso que eu queria fazer na minha tabela, mas fiz minha tabela usando a parte grafica do netbeans, ñ sei onde coloco esse código.


Where's The Comment Form?

Liked it here?
Why not try sites on the blogroll...

%d blogueiros gostam disto: