Você está aqui: Java ::: Classes e Componentes ::: JTable

Entenda a interface TableCellEditor

Quantidade de visualizações: 9548 vezes
A interface TableCellEditor extende CellEditor e descreve o editor usado para editar os dados da célula na TableColumn. Cada TableColumn tem um TableCellEditor associado que pode ser atribuido ou obtido usando os métodos setCellEditor() e getCellEditor(). O método getTableCellEditorComponent() é o único método declarado nesta interface e retorna um Component que será usado para permitir a edição dos dados na célula. Este método possui os seguintes parâmetros:

JTable table: a instância da tabela que contém a célula a ser editada.

Object value: o valor usado para representar os dados na célula.

boolean isSelected: define se a célula está ou não selecionada.

int row: pode ser usado para retornar um renderizador para uma linha ou célula específica.

int column: pode ser usado para retornar um renderizador para uma coluna ou célula específica.

Devemos customizar ou variar o componente retornado baseado nos parâmetros acima. Por exemplo, se o value for uma instância de Color, poderíamos retornar uma subclasse de JLabel que pintaria um retângulo na cor especificada. Este método pode ser usado para retornar diferentes renderizadores para colunas, linhas, ou células.

As implementações de TableCellEditor devem também implementar métodos definidos na interface CellEditor: addCellEditorListener(), removeCellEditorListener(), cancelCellEditing(), stopCellEditing(), isCellEditable(), shouldSelectCell() e getCellEditorValue(). O método isCellEditable() deve ser usado em combinação com o método isCellEditable() de TableModel para determinar se uma dada célula pode ser editada. Somente se os dois métodos retornarem true é que a edição será permitida.

Para iniciar a edição de uma célula, JTable ouve eventos de pressionamento do mouse e invoca o método editCellAt(). Este método pergunta ao TableModel e ao editor de células se determinada célula pode ser editada. Se a resposta for sim, o componente editor é obtido com o método getTableCellEditorComponent() e colocado na célula (o componente é ajustado de modo a caber dentro da célula).

A implementação padrão de TableCellEditor é fornecida como DefaultCellEditor. Infelizmente DefaultCellEditor não pode ser extendido facilmente, o que nos força a implementar todas as funcionalidades de TableCellEditor e CellEditor por conta própria.

Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercício Resolvido de Java - Como contar de 0 até 10 usando recursividade em Java - Funções recursivas em Java

Quantidade de visualizações: 4971 vezes
Pergunta/Tarefa:

Escreva um método Java recursivo que conta e exibe os valores de 0 até 10. Seu método deverá possuir a seguinte assinatura:

public static void contarRecursivamente(int n){
  // sua implementação aqui
}
Veja que o método deverá receber o valor 0 e efetuar novas chamadas a si mesmo até que os valores de 0 a 10 sejam exibidos. O ponto de parada da recursividade é a exibição do valor 10.

Sua saída deverá ser parecida com:

0  1  2  3  4  5  6  7  8  9  10
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package exercicio;

public class Exercicio {
  public static void main(String[] args) {
    // efetua uma chamada ao método recursivo 
    // fornecendo o primeiro valor
    contarRecursivamente(0);
  }
  
  // método recursivo que conta de 0 até 10;
  public static void contarRecursivamente(int n){
    // vamos exibir o número atual
    System.out.print(n + "  ");
    
    // devemos prosseguir com a recursividade?
    if(n < 10){
      // incrementa o valor de n
      n++;  
      // e faz uma nova chamada recursiva 
      contarRecursivamente(n);
    }
  }
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Vetores e Matrizes - Exercícios Resolvidos de Java - Ex. 15 - Declarar, construir e inicializar dois vetores de int e criar um terceiro vetor com os valores dos elementos sendo a soma dos elementos dos dois vetores anteriores

Quantidade de visualizações: 9389 vezes
Pergunta/Tarefa:

Considere os seguintes vetores:

// declara, constrói e inicializa dois vetores de 5 inteiros cada
int a[] = {5, 2, 9, 5, 7};
int b[] = {2, 6, 10, 3, 3};
Escreva um programa Java GUI ou console que cria um terceiro vetor de 5 inteiros e atribua a cada elemento deste vetor a soma dos elementos correspondentes nos dois vetores anteriores. Sua saída deverá ser algo parecido com:

Valores na matriz a: 5   2   9   5   7   
Valores na matriz b: 2   6   10   3   3   
Valores na matriz c: 7   8   19   8   10
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // declara, constrói e inicializa dois vetores de 5 inteiros cada
    int a[] = {5, 2, 9, 5, 7};
    int b[] = {2, 6, 10, 3, 3};
    int c[] = new int[5];
    
    // vamos preencher o terceiro vetor com a soma dos dois anteriores
    for(int i = 0; i < c.length; i++){
      c[i] = a[i] + b[i];  
    }
    
    // vamos mostar o resultado
    System.out.print("Valores no vetor a: ");
    for(int i = 0; i < a.length; i++){
      System.out.print(a[i] + "   ");  
    }
    
    System.out.print("\nValores no vetor b: ");
    for(int i = 0; i < b.length; i++){
      System.out.print(b[i] + "   ");  
    }
    
    System.out.print("\nValores no vetor c: ");
    for(int i = 0; i < c.length; i++){
      System.out.print(c[i] + "   ");  
    }
    
    System.out.println();
  }
}



Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais

Saiba o que é Reflexão (Reflection) em Java - Como usar Reflexão (Reflection) na linguagem Java - Revisado

Quantidade de visualizações: 18307 vezes
Reflection (ou Reflexão), também conhecida como RTI (Runtime Type Information) em algumas linguagens, é um mecanismo para descobrir dados a respeito de um programa em tempo de execução. Reflection em Java nos permite descobrir informações sobre atributos ou membros (campos), métodos e construtores de classes. Podemos também operar nos campos e métodos que descobrimos.

A Reflection permite o que é normalmente chamada de programação dinâmica em Java.

A Reflection em Java é conseguida usando a Java Reflection API. Esta API consiste de classes nos pacotes java.lang e java.lang.reflect.

Antes de prosseguirmos, veja um exemplo de como podemos listar todos os métodos públicos da classe Object:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.lang.reflect.*;
 
public class Estudos{
  public static void main(String args[]){
    // vamos carregar a classe Object
    try{
      Class c = Class.forName("java.lang.Object");
 
      // obtém os nomes dos métodos
      Method[] metodos = c.getMethods(); 
 
      // exibe o nome de cada método
      for(int i = 0; i < metodos.length; i++){
        System.out.println(metodos[i].getName()); 
      }
    }
    catch(ClassNotFoundException e){
      System.out.println(e.getMessage()); 
    }
 
    System.exit(0);
  }
} 

Ao executarmos este código nós teremos o seguinte resultado:

wait
wait
wait
equals
toString
hashCode
getClass
notify
notifyAll

Eis uma lista das coisas que podemos fazer com a Java Reflection API:

1) Determinar a classe de um objeto;
2) Obter informações sobre os modificadores, campos (atributos), métodos, construtores e superclasses de uma classe;
3) Descobrir quais constantes e declarações de métodos pertencem a uma interface;
4) Criar uma instância de uma classe cujo nome não sabemos até o tempo de execução;
5) Obter e definir o valor do campo de um objeto;
6) Invocar um método em um objeto;
7) Criar um novo array, cujo tamanho e tipo de dados só saberemos em tempo de execução.

A Java Reflection API é geralmente usada para criar ferramentas de desenvolvimento tais como debuggers, class browsers e construtores de GUI. Geralmente, neste tipo de ferramentas, precisamos interagir como classes, objetos, métodos e campos, e não sabemos quais em tempo de compilação. Assim, a aplicação deve, dinamicamente, encontrar e acessar estes itens.

Esta dica foi revisada e testada no Java 8.


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 94 usuários muito felizes estudando em nosso site.