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

Entenda a interface TableCellRenderer

Quantidade de visualizações: 9393 vezes
A interface TableCellRenderer descreve o renderizador usado para exibir os dados das células em uma TableColumn. Cada TableColumn tem um TableCellRenderer que pode ser atribuido/obtido com os métodos setCellRenderer()/getCellRenderer(). O método getTableCellRendererComponent() é o único método declarado por esta interface, e retorna um Component que será usado para renderizar a célula. Este método assume os seguintes parâmetros:

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

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

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

boolean hasFocus: define se a célula atual retém o foco (true se ela foi clicada por último).

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

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

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.

Link para compartilhar na Internet ou com seus amigos:

Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar o modificador de acesso private em Java - Apostila Java para iniciantes - Programação Orientada a Objetos em Java

Quantidade de visualizações: 10237 vezes
Um método ou variável declarada com o modificador de acesso private (privado) pode ser acessado somente por uma instância da classe que declara o método ou variável. Veja um exemplo:

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

// Classe Cliente
class Cliente{
  private String nome = "Osmar";
}

// Classe de teste
public class Estudos{
  public static void main(String args[]){
    Cliente cliente = new Cliente();
    System.out.println(cliente.nome);

    System.exit(0);
  }
}

Ao tentarmos compilar este código teremos a seguinte mensagem de erro:

Estudos.java:10: nome has private access in Cliente
  System.out.println(cliente.nome);


O erro já era esperado, pois sabemos que a classe Estudos não tem acesso aos membros privados da classe Cliente. Experimente alterar o modificador private por public e veja o resultado:

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

public String nome = "Osmar";

É importante observar que, se duas instâncias de uma classe forem criadas, uma terá acesso aos dados privados da outra, ou seja, o modificador private define quais classes (não instâncias) podem acessar determinado recurso.

Além disso, saiba que classes de nível superior (Top-level) não podem ser declaradas como private. Elas podem ser no máximo de acesso de pacote (nenhum modificador). A mesma regra se aplica a interfaces. No entanto, classes e interfaces internas podem ser declaradas com o modificador private.

Para finalizar, lembre-se de que sub-classes não possuem acesso à membros privados da superclasse.


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

Exercícios Resolvidos de Java - Como resolver o problema da Torre de Hanói recursivamente

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

Torre de Hanói, ou The Towers of Hanoi, é um "quebra-cabeça" que consiste em uma base contendo três pinos, em um dos quais são dispostos alguns discos uns sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O problema consiste em passar todos os discos de um pino para outro qualquer, usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique em cima de outro menor em nenhuma situação. O número de discos pode variar sendo que o mais simples contém apenas três.

A solução da Torre de Hanói (The Towers of Hanoi) pode ser feita recursivamente da seguinte forma:

O caso base (parada da recursão) é quando n = 1. Se n = 1 nós podemos simplesmente mover o disco de A para B, sem precisar passar pelo pino C. Quando n > 1 nós podemos dividir o problema original em três sub-problemas e resolvê-los sequencialmente.

1) Mova os primeiros n - 1 discos de A para C com a ajuda do pino B;
2) Mova o disco n de A para B;
3) Mova n - 1 discos do pino C para o pino B com a ajuda do pino A.

Além de resolver o problema, seu programa deverá informar quantas chamadas recursivas foram feitas. Sua saída deverá ser parecida com:



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 arquivodecodigos;

import java.util.Scanner;
 
public class Estudos {
  static int quantChamadasRecursivas = 0; // registra as chamadas recursivas  
     
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
       
    // vamos ler a quantidade de discos a serem usados na simulação
    System.out.print("Informe a quantidade de discos: ");
    int discos = Integer.parseInt(entrada.nextLine());
 
    // resolve o problema recusivamente
    System.out.println("\nOs movimentos para resolver o problema foram:\n");
    moverDiscos(discos, 'A', 'B', 'C');
    System.out.println("\nForam feitas " + quantChamadasRecursivas + 
      " chamadas recursivas");
    System.out.println();
  }
   
  // método recursivo que resolve o problema da Torre de Hanói
  public static void moverDiscos(int n, char daTorre, char paraTorre, 
    char torreAux) {
    quantChamadasRecursivas++; // registra mais uma chamada recursiva
       
    if(n == 1){ // condição de parada
      System.out.println("Movendo o disco " + n + " de " + daTorre + " para " + 
        paraTorre);
    }
    else{ // faz mais uma chamada recursiva
      moverDiscos(n - 1, daTorre, torreAux, paraTorre);
      System.out.println("Movendo o disco " + n + " de " + daTorre + " para " + 
        paraTorre);
      moverDiscos(n - 1, torreAux, paraTorre, daTorre);
    }
  }
}



Java ::: Estruturas de Dados ::: Lista Ligada Simples

Estruturas de Dados em Java - Como inserir nós no início de uma lista singularmente ligada em Java

Quantidade de visualizações: 10111 vezes
Esta dica mostra como inserir nós no início de uma lista singularmente ligada. A classe usada para representar cada nó é a seguinte (No.java):

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

// classe No
public class No{
  public int valor;
  public No proximo;
}
// fim da classe No

Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no início quanto a exibição dos nós são feitas usando métodos. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código para a lista singularmente ligada (Lista.java):

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

public class Lista{
  No inicio; // início da lista  

  // método que permite exibir os valores de
  // todos os nós da lista
  public void exibir(){
    if(inicio != null){
      do{
        System.out.println(inicio.valor);
        inicio = inicio.proximo;
      }while(inicio != null);
    }
    else
      System.out.println("A lista esta vazia\n\n");
  }
 
  // método que permite inserir nós no
  // início da lista.
  // veja que o método recebe o valor a ser
  // armazenado em cada nó
  public void inserirInicio(int v){
    No novo;

    // verifica se a lista está vazia
    if(inicio == null){
      // reserva memória para o novo nó
      inicio = new No();
      inicio.valor = v;
      // é o primeiro nó...não deve apontar para
      // lugar nenhum
      inicio.proximo = null;
    }
    else{ // não está vazia....vamos inserir o nó no início
      // vamos criar um novo nó agora
      novo = new No();
      // atribui o valor do nó
      novo.valor = v;
      // define o inicio da lista como campo proximo
      // do novo nó
      novo.proximo = inicio;
      // o novo nó é o início da lista agora
      inicio = novo;
    }
  }
}

Compile as classes No.java e Lista.java e vamos escrever um aplicativo de teste (TesteLista.java):

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

public class TesteLista{
  public static void main(String args[]){
    // vamos criar uma nova lista
    Lista lista = new Lista();

    // vamos inserir quatro valores no
    // início da lista
    lista.inserirInicio(45);
    lista.inserirInicio(3);
    lista.inserirInicio(98);
    lista.inserirInicio(17);

    // exibe os valores na lista
    lista.exibir();

    System.exit(0);   
  }  
}



Vamos testar seus conhecimentos em

Vantagens e Desvantagens do Concreto Armado

A escolha do sistema estrutural a ser adotado para a edificação a ser executada em determinada região passa pelo estudo da viabilidade técnica e, na sequência, da viabilidade econômica. A viabilidade técnica irá considerar, entre outros itens, as vantagens e desvantagens dos sistemas em análise.

Com relação às desvantagens da utilização do concreto armado, analise as afirmações a seguir e indique V para a(s) verdadeira(s) e F para a(s) falsa(s):

( ) A necessidade da utilização de um sistema de formas e escoramentos é uma desvantagem das estruturas de concreto armado que pode ser evitada pela utilização de elementos pré-moldados.

( ) O fato de o concreto produzido não atingir a resistência prevista em projeto é uma desvantagem que não pode ser evitada.

( ) A fissuração de elementos de concreto armado é uma desvantagem inevitável e não pode ser controlada.

( ) Seu elevado peso próprio é uma das principais desvantagens no concreto armado, pois esse fato pode ser penalizante na execução.

Assinale a alternativa que contém a sequência correta.

A) V - V - F - F.

B) F - V - F - V.

C) F - V - F - F.

D) V - F - F - F.

E) F - V - V - F.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual função é usada para converter uma string em letras maiúsculas em Python?

A) toUpper()

B) upper()

C) upper_case()

D) toUpperCase()

E) uppercase()
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Perfil em aço

O perfil de aço apresenta diversas características e uma infinidade de composições que podem permanecer resistentes por meio da conexão de diferentes peças mediante conexões.

A esse respeito, assinale a alternativa que indica corretamente o elemento de conexão de perfis de aço que oferece a possibilidade de união das peças de uma moldura de aço como se fosse um todo monolítico.

A) Rebite.

B) Pinos de alta resistência.

C) Pinos de aço-carbono.

D) Pinos de controle de tensão.

E) Solda.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Vantagens e Desvantagens do Concreto Armado

O concreto armado é composto pelo concreto simples e por barras de aço estrategicamente posicionadas no interior do concreto. O trabalho conjunto é garantido pela aderência entre os materiais que o compõem e, com isso, o concreto armado une a resistência à compressão do concreto com a resistência à tração do aço.

Com relação às características do concreto armado, assinale a alternativa correta:

A) O concreto armado tem elevada resistência à compressão e baixa resistência à tração.

B) As armaduras colocadas na parte inferior de vigas de concreto absorvem os esforços de tração de uma peça sujeita à flexão e controlam o aparecimento de fissuras.

C) As armaduras de peças de concreto armado se limitam a absorver os esforços gerados por solicitações normais de tração.

D) É preciso ter cuidado ao utilizar o concreto e o aço em conjunto, já que são materiais distintos.

E) O concreto armado surgiu apenas no século XX, quando passou a ser utilizado também no Brasil.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fundações

Sondagem à Percussão (SPT) e Rotativa (RQD)

Na sondagem SPT, o que significa o N30?

A) Corresponde ao número de golpes dos últimos 30cm na fase de amostragem.

B) Corresponde à energia de 30% a ser considerada.

C) Corresponde a 30 golpes para penetrar um metro.

D) Corresponde ao número de golpes dos primeiros 30cm do amostrador.

E) Corresponde à energia que causa a perfuração dinâmica de 30cm com uma única pancada.
Verificar Resposta Estudar Cards Todas as Questões

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: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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